#javascript #arrays #json #reactjs #object
#javascript #массивы #json #reactjs #объект
Вопрос:
У меня есть такой объект —
[{"genericName":"genesName test","genericId":3,"code":"generics"},{"genericName":"genesName fhfghsd","genericId":8,"code":"generics"},{"genericName":"genesName fhld","genericId":11,"code":"generics"}]
Я хочу сделать это так —
{"generics": {"genericId": 3}},
{"generics": {"genericId": 8}},
{"generics": {"genericId": 11}}
Как я могу это сделать?
Комментарии:
1. Вы имеете в виду группировать их так?
{ "generics": [3, 8, 11] }
Вопрос кажется немного расплывчатым.2. @srx, это будет так же, как показано ниже: (
3. здесь часть generics является статической, я могу изменить объект с помощью — [{«GenericName»:»genesName test», «genericId»:3″}, {«GenericName»:»genesName fhfghsd», «genericId»:8}, {«GenericName»:»genesName fhld», «genericId»:11}]
Ответ №1:
Использование map
и деструктурирование
const data = [
{ genericName: "genesName test", genericId: 3, code: "generics" },
{ genericName: "genesName fhfghsd", genericId: 8, code: "generics" },
{ genericName: "genesName fhld", genericId: 11, code: "generics" },
];
const res = data.map(({ code, genericId }) => ({ [code]: { genericId } }));
console.log(res);
Ответ №2:
Вы можете попробовать map
метод Array
:
const obj = [{
"genericName": "genesName test",
"genericId": 3,
"code": "generics"
}, {
"genericName": "genesName fhfghsd",
"genericId": 8,
"code": "generics"
}, {
"genericName": "genesName fhld",
"genericId": 11,
"code": "generics"
}]
const mapObjToResult = (item, idx, arr) => {
return {
[item.code]: {
genericId: item.genericId
}
}
}
const result = obj.map(mapObjToResult);
console.log(result);
Удачи…
Ответ №3:
Если вы хотите иметь массивы объектов, то этот?
let gens = [
{"genericName":"genesName test","genericId":3,"code":"generics"},
{"genericName":"genesName fhfghsd","genericId":8,"code":"generics"},
{"genericName":"genesName fhld","genericId":11,"code":"generics"}
]
result = gens.map(item => ({ [item.code] : {genericId: item.genericId}})