我试图从JSON文件中提取多个数据片段以放入一个对象,这样我就可以将对象转换回只有我想要的数据的JSON。
我在想这样的物体是可能的:
data = {
0: {
lat: xxxx,
lng: xxxx,
name: xxxx
},
1: {
...
}
};
这是提取数据的循环,但我无法弄清楚如何将三个数据点分配给同一个对象(data.0,data.1,...)对象(数据)。
for (let z = 0; z < data.features.length; z++) {
finalData.z.lat = data.features[z].center[0];
finalData.z.lng = data.features[z].center[1];
finalData.z.name = data.features[z].text;
}
我不介意在对象上使用数组,因为它们也可以是JSON.stringified。 data.features的长度因API调用而异。
我希望使用vanilla JS来实现这一目标,但愿意接受建议。它正在服务器上执行(Node.js)。
答案 0 :(得分:1)
使用允许属性访问的[]
表示法,而不是dot
表示法。
var dataArray = [];
for (let z = 0; z < data.features.length; z++) {
var finalData = {};
finalData[z] = {};
finalData[z].lat = data.features[z].center[0];
finalData[z].lng = data.features[z].center[1];
finalData[z].name = data.features[z].text;
dataArray.push(finalData);
}
如果您使用的是ES6,则可以使用[]
模式匹配来获取计算出的属性名称。
let dataArray = [];
for (let z = 0; z < data.features.length; z++) {
let feature = data.features[z];
let structuredData = {
[z]: {
lat: feature.center[0],
lng: feature.center[1],
name: feature.text
}
};
dataArray.push(structuredData);
}