【问题标题】:How to convert particular key value from object to array javascript如何将特定键值从对象转换为数组javascript
【发布时间】:2021-12-30 11:55:38
【问题描述】:

我想知道如何从对象中获取特定键并转换为数组 在javascript中

var result = Object.entries(obj).includes(obj.name || obj.country || obj.account || obj.pincode).map(e=>e);

var obj = {
  "name" : "Sen",
  "country": "SG",
  "key" : "Finance",
  "city": "my",
  "account":"saving",
  "pincode":"1233"
}

Expected Output

["Sen", "SG", "saving", "1233"]

【问题讨论】:

    标签: javascript arrays loops object foreach


    【解决方案1】:

    创建一个请求的keys数组,然后对其进行映射并从原始对象中获取值:

    const obj = {"name":"Sen","country":"SG","key":"Finance","city":"my","account":"saving","pincode":"1233"}
    
    const keys = ['name', 'country', 'account', 'pincode']
    
    const result = keys.map(k => obj[k])
    
    console.log(result) // ["Sen", "SG", "saving", "1233"]

    【讨论】:

      【解决方案2】:

      我觉得你可以这样试试。

      还有其他方法可以获得该结果。这里只是一个简单的解决方案。

      var obj = {
        "name" : "Sen",
        "country": "SG",
        "key" : "Finance",
        "city": "my",
        "account":"saving",
        "pincode":"1233"
      }
      
      let arrObj = []
      
      let result = arrObj.push(obj.name, obj.country, obj.account, obj.pincode)
      
      console.log(arrObj)
      

      【讨论】:

        【解决方案3】:

        filter Set 仅包含您想要的键,然后使用 map 仅返回值:

        const keys = new Set(['name', 'country', 'account', 'pincode'])
        
        Object.entries(obj).filter(entry => keys.has(entry[0])).map(entry => entry[1])
        

        【讨论】:

          【解决方案4】:

          如果你想要一个基于已知的硬编码属性列表的数组,最简单的选择是数组字面量:

          const result = [obj.name, obj.country, obj.account, obj.pincode];
          

          这种方法的一个好处是它保证了数组中值的顺序。虽然您的示例中的order is predictable(一个onject 文字),但如果您的objs 是在不同的位置创建的,则值的顺序可能并不总是相同。

          【讨论】:

            【解决方案5】:
                var obj = {
                  "name" : "Sen",
                  "country": "SG",
                  "key" : "Finance",
                  "city": "my",
                  "account":"saving",
                  "pincode":"1233"
                }
                const Names = Object.keys(obj);
                console.log(Names);
                const Values = Object.values(obj);
                console.log(Values);
            const entries = Object.entries(obj);
            console.log(entries);
            

            【讨论】:

            • 问题是试图获得一个看起来像这样的数组:["Sen", "SG", "saving", "1233"] - 你的代码并没有真正帮助 - 它只是打印内置函数的结果。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-11
            • 2019-12-02
            • 1970-01-01
            • 2019-01-14
            • 1970-01-01
            • 2021-07-10
            相关资源
            最近更新 更多