首页 > 解决方案 > 遍历 JSON 对象并根据键名生成数组

问题描述

我有以下json对象:

[{"i_value":"1","i_value_2":"1"},
{"i_value":"24","i_value_2":"24"}]

然后我有以下循环:

let setData = [];
for (let i = 0; i < response.data.length; i++) {
    if ('access key name' === 'i_value') {
        setData.push(response.data[i].i_value)
    }
}
setData = setData.map(Number);
console.log(setData);

我只想在没有setData键名时填充新数组=== i_valuei_value_2

我尝试了以下方法:

let setData = [];
let keys = Object.keys(response.data);
for (let i = 0; i < response.data.length; i++) {
    if (keys[i] === 'i_value') {
        setData.push(response.data[i].i_value)
    }
}
setData = setData.map(Number);
console.log(setData);

但这不起作用。对此有什么想法吗?

标签: javascript

解决方案


只需获取原始数据 和.map,提取i_value属性:

const input = [{"i_value":"1","i_value_2":"1"},
{"i_value":"24","i_value_2":"24"}];

console.log(
  input.map(({ i_value }) => Number(i_value))
);

另请注意,没有 JSON 对象之类的东西。如果你有一个对象,你就只有一个对象;JSON 格式是一种字符串格式,可以通过JSON.parse.


推荐阅读