0

我有以下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);

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

4

2 回答 2

5

只需获取原始数据 和.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.

于 2018-10-04T06:30:16.013 回答
2

您可以使用map()以下方式创建一个新数组,其结果是在调用数组中的每个元素上调用提供的函数:

var response = {}
response.data = [{"i_value":"1","i_value_2":"1"},
{"i_value":"24","i_value_2":"24"}]

let setData = response.data.map(o => Number(o.i_value));

console.log(setData);

于 2018-10-04T06:35:59.130 回答