这是我一次获取多个GET URL,然后将获取的JSON数据放入的地方
Promise.all([
fetch('http://127.0.0.1:8000/api/chartTable').then((response) => response.json()),
fetch('http://127.0.0.1:8000/api/chartTable1').then((response) => response.json()),
]).then(function (response) {
console.log(...response.map((res) => res['userDetails']));
});
当我做console.log(... response.map((res)=> res ['userDetails']))); .Inscpect中的数据将像这样
(3) [{…}, {…}, {…}]
0 : {"id": 1, "name": "Robbie", "kill": 12 , "knock": 1},
1 : {"id": 2, "name": "Mohamand", "kill": 12 , "knock": 4},
2 :{"id": 3, "name": "Jebisha", "kill": 8 , "knock": 4}
(3) [{…}, {…}, {…}]
{"id": 1, "name": "Robbie", "kill":12 , "knock": 4},
{"id": 2, "name": "Mohamand", "kill": 13 , "knock": 3},
{"id":3, "name": "Jebisha", "kill": 5 , "knock": 1}
但是我想这样转换
"key1": [{"id": 1, "name": "Robbie", "kill": 12 , "knock": 1},
{"id": 2, "name": "Mohamand", "kill": 12 , "knock": 4},
{"id": 3, "name": "Jebisha", "kill": 8 , "knock": 4}],
"key2": [
{"id": 1, "name": "Robbie", "kill":12 , "knock": 4},
{"id": 2, "name": "Mohamand", "kill": 13 , "knock": 3},
{"id":3, "name": "Jebisha", "kill": 5 , "knock": 1}]
当我创建变量并创建演示时。 console.log(res)。错误提示无法读取未定义的属性“ map”
var demo=[{key1: response[0].userDetails, key2: response[1].userDetails}];
var res = demo.key1.map(function(item, idx) {
return Object.keys(item).reduce(function(obj, key) {
if (key == 'name') {
obj[key] = item[key]
} else {
obj[key] = item[key] + demo.key2[idx][key];
}
return obj;
}, {});
});
console.log(res)
答案 0 :(得分:0)
您可以将数组映射到对象的值并将其展平:
// if you have this
var array = [{ 0 : {"id": 1, "name": "Robbie", "kill": 12 , "knock": 1}},
{ 1 : {"id": 2, "name": "Mohamand", "kill": 12 , "knock": 4}},
{2 :{"id": 3, "name": "Jebisha", "kill": 8 , "knock": 4}}]
var array2 = array.map(item => Object.values(item)).flat()
console.log(array2)
/*
Will print
[{
id: 1,
kill: 12,
knock: 1,
name: "Robbie"
}, {
id: 2,
kill: 12,
knock: 4,
name: "Mohamand"
}, {
id: 3,
kill: 8,
knock: 4,
name: "Jebisha"
}]
*/