Если я понимаю, что вы хотите сделать правильно, вы хотите создать итеративный массив, содержащий дочерние объекты objectName?
Я бы сделал это, как показано ниже, если вы используете функцию карты прототипа массива, вы можете водна строка кода перебирает все ключи объекта, используя Object.keys (target) и возвращает требуемые свойства (в данном случае внутренние дочерние объекты) в качестве элементов массива через map.
strangeObject = {
"objects":{
"objectName_1":{
"name":"x",
"otherData":"some other data"
},
"objectName_2":{
"name":"y",
"otherData":"some other data"
}
}
}
const arrayOfObjects = Object.keys(strangeObject.objects).map(key => strangeObject.objects[key])
console.log(arrayOfObjects)
// logs [ { name: 'x', otherData: 'some other data' },
// { name: 'y', otherData: 'some other data' } ]
mappedкак в вашем примере, метод 1
const filteredKeyArray = ['x','y'];
const remappedArray = Object.keys(strangeObject.objects).map((key, i) => {
return { [filteredKeyArray[i]] : strangeObject.objects[key]}
})
console.log(remappedArray)
// logs [ { x: { name: 'x', otherData: 'some other data' } },
// { y: { name: 'y', otherData: 'some other data' } } ]
итерирование по фильтру FilterKeyArray, метод 2
const filteredIterator = filteredKeyArray.map((key, i) => {
return { [key]: strangeObject.objects[Object.keys(strangeObject.objects)[i]]}
})
console.log(filteredIterator)
// logs [ { x: { name: 'x', otherData: 'some other data' } },
// { y: { name: 'y', otherData: 'some other data' } } ]
Обратите внимание, что в этих решениях предполагается, что в вашем фильтре FilterKeyArray будет ключ, соответствующий дочернему элементуЕсли объект итерируется по карте, вы можете добавить проверку, чтобы проверить, больше ли длина фильтруемого массива, чем итератор карты, или если значение FilterKeyArray [i] не определено при использовании метода 1. Если вы используете метод два, вам может понадобитьсяпроверить неопределенность, прежде чем ссылаться на Object.keys (irdObject.objects) [i], так как у вас может быть меньше объектов, которыеfiteredKeyArray keys.