我有以下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_value
时填充新的i_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);
但这不起作用。有什么想法吗?
答案 0 :(得分: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
转换为对象。
答案 1 :(得分: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);