请问js怎么循环如下数据,获取到a,b,c,d,e,f?

仓术子
  • 6
    <script>
        var data =  [
        {
            "1": "a" 
        },
        {
            "2": "b"
        },
        {
            "3": "c"
        },
        {
            "4": "d"
        },
        {
            "5": "e"
        },
        {
            "6": "f"
        }
    ]
    for(let i =0;i<data.length;i++){
        console.log(data[i]);
    }
    </script>

我仅仅想拿到a,b,c,d,e,f;
并不是循环到每一项
image.png

回复
阅读 937
7 个回答
[
        {
            "1": "a" 
        },
        {
            "2": "b"
        },
        {
            "3": "c"
        },
        {
            "4": "d"
        },
        {
            "5": "e"
        },
        {
            "6": "f"
        }
    ].map(Object.values).flat()
var data =  [
        {
            "1": "a" 
        },
        {
            "2": "b"
        },
        {
            "3": "c"
        },
        {
            "4": "d"
        },
        {
            "5": "e"
        },
        {
            "6": "f"
        }
    ]
data.map((item,index)=>item[(index+1).toString()])//根据索引获取value 
// ['a', 'b', 'c', 'd', 'e', 'f']
data.flatMap((item,index)=>Object.values(item))// 获取所有的value,并铺平。
// ['a', 'b', 'c', 'd', 'e', 'f']

data.map(item => item[Object.keys(item).pop()])

其实你自己已经实现一半逻辑了,只需在for循环内再遍历一遍对象,把属性值存入结果中就行了

var arr = [];
for(var i = 0;i < data.length; ++i) {
    for (var key in data[i]) {
        arr.push(data[i][key]);
    }
}
console.dir(arr);
Jason
  • 2
新手上路,请多包涵
var data = [
  {
    1: "a",
  },
  {
    2: "b",
  },
  {
    3: "c",
  },
  {
    4: "d",
  },
  {
    5: "e",
  },
  {
    6: "f",
  },
]

const tmp = data.flatMap(item => Object.values(item));
// tmp = [ 'a', 'b', 'c', 'd', 'e', 'f' ]

既然都是有序号的,可以考虑当作 Array Like 对象来处理,当然没有第 0 号元素,需要处理的时候去掉

const data = [
    { "1": "a" },
    { "2": "b" },
    { "3": "c" },
    { "4": "d" },
    { "5": "e" },
    { "6": "f" }
];

const [, ...a] = Array.from(Object.assign({ length: data.length + 1 }, ...data));
console.log(a);
阿桃
  • 3
新手上路,请多包涵

Object.values(data).map((item,index) => item[(index + 1)])

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏