[英]d3 creating path for each object in array, instead of using each objects x and y properties
[英]Creating an array of objects using an array of each object's name
我覺得這里很吸引人。 場景:我在消息中發送了一個JSON,看起來像這樣:
{"objects": {
"object_name1":{
"name":"object_name1",
"otherData":"some other data"
},
{"object_name2":{
"name":"object_name2",
"otherData":"some more data"
}
}}
如您所見,對象不在數組中。 我使用Object.keys函數創建了一個包含每個對象的字符串名稱的數組,然后使用if語句創建了另一個包含我想要的對象的數組,這導致了我的當前問題:
如何使用創建的數組中包含的字符串值(對象鍵)創建對象數組?
我已經嘗試過這樣的事情:
filteredKeyArray = ['object_name1','object_name2'];
newObjArray = [];
for(i in filteredKeyArray){
for(key in objects){
newObjArray.push(objects[i[key]]);
}
}
但是newObjArray
只是顯示所有未定義的。 理想情況下, newObjArray
顯示如下內容:
[{"object_name1":{...}},{"object_name2":{...}}]
有什么想法嗎?
如果我了解要正確執行的操作,則要創建一個包含objectName子對象的可迭代數組?
我將按照以下方式進行操作,如果使用數組原型映射函數,則可以在一行代碼中使用Object.keys(target)遍歷對象的所有鍵,然后返回所需的屬性(在這種情況下為內部子級)對象)作為通過地圖的數組元素。
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' } ]
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' } } ]
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' } } ]
請注意,這些解決方案假定在map迭代過程中,filteredKeyArray中將有一個與子對象匹配的鍵,您可能需要添加檢查以檢查是否FilteredKeyArray的長度長於map迭代器,或者是否如果使用方法1,則filteredKeyArray [i]是未定義的。如果使用方法二,則在引用Object.keys(strangeObject.objects)[i]之前,可能需要檢查未定義的對象,因為對象可能少於fiteredKeyArray鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.