У меня есть такой массив:
array = [{key: "6S", values: { 3: [{Id: "1234a"}, {Id: "1234b"}]}},
{key: "7S", values: { 5: [{Id: "1534a"}], 4: [{Id:"1534a"}]}}]
Я хочу сопоставить «3», «5» и «4» (которые на самом деле являются ключами из другого списка внутри большого списка) из значений ... что-то вроде этого
array.map(function(d)
{ return d.values."key";}));
Чтобы получить доступ к значениям 3, 5 и 4, я могу использовать цикл for. Однако есть ли способ получить доступ к значениям напрямую?
Object.keys(d.values)что вы имеете в виду под Я хочу сопоставить "3", "5" и "4"? вы хотите для них отдельный массив / объект?
@GeorgeBailey, чтобы создать список с этими тремя элементами ... Я хочу использовать эти элементы как домен оси. Object.keys (d.values) возвращают только элементы из последнего объекта списка.
@CatalinVasilescu Каков именно ваш ожидаемый результат?
@epascarello Object.keys (d.values) работает хорошо, только массив содержит единственный список с объектами .. Например, в массиве сверху они Object.keys (d.values) вернут «5» и «4». .без 3
Да, но вы отображаете внешний массив .... так что вы просто выполняете concat ....
@Eddie ["3", "5", "4"]



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Object.keys() вернет массив ключей объекта. Затем вы можете использовать concat() для их объединения.
array = [{key: "6S", values: { 3: [{Id: "1234a"}, {Id: "1234b"}]}},
{key: "7S", values: { 5: [{Id: "1534a"}], 4: [{Id:"1534a"}]}}];
var result = [].concat(...array.map(d => Object.keys(d.values)));
console.info(result);lol, я просто набрал [].concat(...array.map(d => Object.keys(d.values))) на своей консоли, чтобы убедиться, что он работает, прежде чем публиковать ответ.
Object.keys дает вам массив, и в результате на карте вы получаете что-то вроде
[[3],[4,5]]
Вы можете сгладить возвращаемый массив до одного массива, например
array.join(',').split(',');
var array = [{
key: "6S",
values: {
3: [{
Id: "1234a"
}, {
Id: "1234b"
}]
}
},
{
key: "7S",
values: {
5: [{
Id: "1534a"
}],
4: [{
Id: "1534a"
}]
}
}
];
var newArray = array.map(o=> Object.keys(o.values))
console.info(newArray.join(',').split(','))
Object.keys()работает?