#javascript
#javascript
Вопрос:
Здесь я должен был получить сразу несколько URL-адресов GET, а затем поместить полученные данные 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)
Комментарии:
1.
console.log(...response.map((res, i) => ({[`${key}${i 1}`]: res['userDetails']})));
2. ошибка @JaromandaX похожа на то, что ключ не определен
3. Я ошибся — должно было быть
[`key${i 1}`]
4. Итак, просто
console.log({key1: response[0].userDetails, key2: response[1].userDetails})
?5. что такое salesTables? это пользовательские данные в коде, который вы показали
Ответ №1:
Вы можете сопоставить массив со значениями объекта и сгладить его:
// 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"
}]
*/