Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回对象的一个元素并创建该元素的新数组_Javascript_Arrays - Fatal编程技术网

Javascript 返回对象的一个元素并创建该元素的新数组

Javascript 返回对象的一个元素并创建该元素的新数组,javascript,arrays,Javascript,Arrays,我有一个函数,它返回如下对象数组: [ { type: 'Point', coordinates: [ 53.43887641, -2.26581926 ] }, { type: 'Point', coordinates: [ 53.260671, -2.12337785 ] }, { type: 'Point', coordinates: [ 53.44815087, -2.22897913 ] }, //more of the same... 我的问题是,如何只返回坐标并创建一

我有一个函数,它返回如下对象数组:

[ { type: 'Point', coordinates: [ 53.43887641, -2.26581926 ] },
  { type: 'Point', coordinates: [ 53.260671, -2.12337785 ] },
  { type: 'Point', coordinates: [ 53.44815087, -2.22897913 ] },
  //more of the same...
我的问题是,如何只返回坐标并创建一个只包含坐标的新数组,使其看起来像这样:

[[ 53.43887641, -2.26581926 ],
 [ 53.260671, -2.12337785 ],
 [ 53.44815087, -2.22897913 ],
 // more of the same ...
我相信您可以通过执行
return{coordinates:coordinates}
来返回对象的特定元素,但我不确定如何将其应用到for循环中。

您可以使用以下函数:

 var coordsObj = [{
   type: 'Point',
   coordinates: [53.43887641, -2.26581926]
 }, {
   type: 'Point',
   coordinates: [53.260671, -2.12337785]
 }, {
   type: 'Point',
   coordinates: [53.44815087, -2.22897913]
 }]

var coordAr = coordsObj.map(function(o) {
  return o.coordinates;
})

console.log(coordAr) // [[53.43887641, -2.26581926], [53.260671, -2.12337785], [53.44815087, -2.22897913]]
根据@Tushar的评论,您可以使用
ES2015
表格:

let coordAr = coordsObj.map(o => o.coordinates)
您可以使用以下功能:

 var coordsObj = [{
   type: 'Point',
   coordinates: [53.43887641, -2.26581926]
 }, {
   type: 'Point',
   coordinates: [53.260671, -2.12337785]
 }, {
   type: 'Point',
   coordinates: [53.44815087, -2.22897913]
 }]

var coordAr = coordsObj.map(function(o) {
  return o.coordinates;
})

console.log(coordAr) // [[53.43887641, -2.26581926], [53.260671, -2.12337785], [53.44815087, -2.22897913]]
根据@Tushar的评论,您可以使用
ES2015
表格:

let coordAr = coordsObj.map(o => o.coordinates)

如果您确实需要在for循环中执行此操作(例如,较旧的浏览器支持,并且您不能/不会使用垫片或lodash):

var坐标=[];
var points=//您的起始对象
var len=点。长度;

对于(var i=0;i,如果您确实需要在for循环中执行此操作(例如,较旧的浏览器支持,并且您不能/不会使用垫片或lodash):

var坐标=[];
var points=//您的起始对象
var len=点。长度;

对于(var i=0;iYes),您可以引用对象键(
坐标
)来获取其值(
[58.999,67.222]
),但由于您有一个对象数组,因此需要循环通过它们来获取每组坐标:

var coordinate_array = [];
for (var i=0; i < object_arr.length; i ++) {
    coordinate_array.push(object_arr[i]['coordinates']);
    // Can also do: coordinate_array.push(object_arr[i].coordinates);
}

是的,您可以引用对象键(
坐标
)以获取其值(
[58.999,67.222]
),但由于您有一个对象数组,因此需要循环遍历它们以获取每组坐标:

var coordinate_array = [];
for (var i=0; i < object_arr.length; i ++) {
    coordinate_array.push(object_arr[i]['coordinates']);
    // Can also do: coordinate_array.push(object_arr[i].coordinates);
}

arr=arr.map(obj=>obj.coordinates);
arr=arr.map(obj=>obj.coordinates);
如我在评论中所说,可以使用arrow函数。
arr=arr.map(obj=>obj.coordinates);
如我在评论中所说,可以使用arrow函数。
arr=arr.map(obj=>obj.coordinates);