在对象中创建一个数组

时间:2018-01-05 16:47:50

标签: javascript arrays object coordinates

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
                    }
                }

3 个答案:

答案 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道具。