MyArray [{latitude: "48", longitude: "2", Destination: "Paris"},{latitude: "18", longitude: "20", Destination: "London"},...etc]
我喜欢这个......
MyNewArray [{coordinates: [48,2], Destination: "Paris"},{coordinates: [18,20], Destination: "London"},...etc]
我的代码是这样的......我想在对象
中创建一个数组 var len = MyArray.length;
for (var i = 0; i < len; i++) {
{
coordinates: MyArray[i].latitude + ', ' + MyArray[i].longitude,
lieu: MyArray[i].lieu
}
}
答案 0 :(得分:1)
您可以使用Array.map来完成同样的事情。看看它是如何工作的:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
MyNewArray = MyArray.map(place => {
return {
coordinates: [place.latititude, place.longitude],
Destination place.Desstination
};
});
答案 1 :(得分:0)
你可以试试这个:
MyArray = [{latitude: "48", longitude: "2", Destination: "Paris"},{latitude: "18", longitude: "20", Destination: "London"}];
MyNewArray = MyArray.map(function(e)
{
return {
coordinates: [+e.latitude, +e.longitude],
Destination: e.Destination
};
});
console.log(MyNewArray);
map
将处理源数组中的所有元素,将它们传递给函数,并返回一个新数组,其中包含每个函数调用的返回值。
在函数中,我们使用请求的键创建一个新对象并将其返回。
coordinates
是一个包含坐标的新数组。
我在每个坐标前添加了+
以强制转换为数字(而不是原始数组中的字符串),这可能是也可能不需要。
答案 2 :(得分:0)
EDITED感谢下面的鹰眼评论员。 : - )
let newArray = []
MyArray.forEach(item => {
item.coordinates = [item.latitude, item.longitude]
newArray.push(item)
})
有了这个,MyArray
保持了相同的结构,同时你的newArray
变量填充了相同的数组+每个对象的coordinates
道具。