【问题标题】:How to get all keys in array?如何获取数组中的所有键?
【发布时间】:2021-10-13 16:14:41
【问题描述】:

我需要获取地址、lat 和 lng:

let Orders= [{
  pedido: this.listAddress[0].address,
  lat: this.listAddress[0].lat,
  lng: this.listAddress[0].lng
}]

但是这样,我只得到第一项,我需要动态获取所有数据

0: {address:"test 00", lat:"00", lng:"00"}
1: {address:"test 01", lat:"01", lng:"01"}
2: {address:"test 02", lat:"01", lng:"02"}
3: {address:"test 03", lat:"01", lng:"03"}

【问题讨论】:

  • 数组没有键,对象有。您拥有的是数组中的单个对象。如果只有一个对象,则数组是不必要的包装器。 listAddress 的代码在哪里?
  • 你的意见是什么?

标签: javascript angularjs typescript


【解决方案1】:
const orders = listAddress.map(list => {
   return ({
      pedido: list.address,
      lat: list.lat,
      lng: list.lng
   })
})

【讨论】:

    【解决方案2】:

    不确定您是否正在寻找类似下面的内容。看看

    let Orders = this.listAddress.map(la => ({
        address: la.address,
        lat: la.lat,
        lng: la.lng
    }));
    

    【讨论】:

      【解决方案3】:

      假设 listAddress 是一个对象数组,您需要遍历数组以获取每个元素

      
      let order = listAddress.map(el => {
       return {
            pedido: el.address,
            lat: el.lat,
            lng: el.lng
         }
      })
      

      【讨论】:

      • 在数组上运行 .map 并将项目推送到不同的数组变量中是错误的做法。 .map 它自己返回一个数组,因此只需将返回的输出存储在新变量中就足够了。
      【解决方案4】:

      const order = {
          0: {address:"test 00", lat:"00", lng:"00"},
          1: {address:"test 01", lat:"01", lng:"01"},
          2: {address:"test 02", lat:"01", lng:"02"},
          3: {address:"test 03", lat:"01", lng:"03"},
      }
      
      
      Object.values(order).forEach(obj =>{
          const {address, lat, lng} = obj;
          console.log(address, lat, lng)
      })

      【讨论】:

        【解决方案5】:

        你可以试试JS中的Array.ma​​p方法

        所以用法是这样的

        const inputArray = [
           {address:"test 00", lat:"00", lng:"00"},
           {address:"test 01", lat:"01", lng:"01"},
           {address:"test 02", lat:"02", lng:"02"},
        ]
        
        const outputArray = inputArray.map( item => (
              {
                 pedido: item.address,
                 lat: item.lat,
                 lng: item.lng,
              }
           )
        )
        
        console.log(outputArray) // [Object { pedido: "test 00", lat: "00", lng: "00" }, Object { pedido: "test 01", lat: "01", lng: "01" }, Object { pedido: "test 02", lat: "02", lng: "02" }]
        
        

        在此处了解更多信息Array.prototype.map()

        【讨论】:

          【解决方案6】:
          const orders = listAddress.map(list => {
             return ({
               pedido: list.address,
               lat: list.lat,
               lng: list.lng
            })
          })
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-02-17
            • 2012-06-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多