问题描述
从此数组:
[{
"map": {
"name": "2",
"y": 2
}
}, {
"map": {
"name": "4",
"y": 17494
}
}, {
"map": {
"name": "3",
"y": 2
}
}, {
"map": {
"name": "1",
"y": 1
}
}]
我想要这个数据结构:
[{ "name": "2", "y": 2 }, { "name": "4", "y": 17494 }, { "name": "3", "y": 2 }, { "name": "1", "y": 1 }]
我怎样才能做到这一点?
1楼
使用JavaScript映射:
let json = [{ "map": { "name": "2", "y": 2 } }, { "map": { "name": "4", "y": 17494 } }, { "map": { "name": "3", "y": 2 } }, { "map": { "name": "1", "y": 1 } }]; let result = json.map(item => item.map); result.forEach(i => console.log(i));
上面的代码打印:
{name: "2", y: 2}
{name: "4", y: 17494}
{name: "3", y: 2}
{name: "1", y: 1}
看到:
2楼
嗨,您可以通过遍历数组并提取所需的输出,通过纯js??完成此操作。 请检查下面的代码。
var arr = [{ "map": { "name": "2", "y": 2 } }, { "map": { "name": "4", "y": 17494 } }, { "map": { "name": "3", "y": 2 } }, { "map": { "name": "1", "y": 1 } }];
var resultArr = arr.map(function(item) {
return item.map;
})
3楼
使用Array.prototype.reduce()
let input=[{ "map": { "name": "2", "y": 2 } }, { "map": { "name": "4", "y": 17494 } }, { "map": { "name": "3", "y": 2 } }, { "map": { "name": "1", "y": 1 } }] let revisedarray=input.reduce((acc,val)=>{ acc.push(val.map); return acc; },[]) console.log(revisedarray)
有关数组缩减的更多信息,请
4楼
ES6短语法,这里A是对象的原始数组,而A2是对象的输出数组
let A2 = A.map(o=>o.map);
5楼
let jsonString = your_jsonString;
var blankArr = [];
let result = jsonString.map(item => item.map);
result.forEach(i => blankArr.push(i));
console.log(blankArr);