如何在js中将对象数组转换为数组数组

时间:2015-12-23 09:19:53

标签: javascript arrays

var ph = [{x:1231,y:121},{x:131,y:11},{x:231,y:21},{x:123,y:12}]

我想将其转换为

[[1231,121],[131,11],..]

到目前为止,我已经尝试了Array.prototype.slice.call,但它对我不起作用。

3 个答案:

答案 0 :(得分:5)

使用Array.prototype.map方法。它遍历一个数组并使用每次迭代返回的项创建一个新数组:



var ph = [{x:1231,y:121},{x:131,y:11},{x:231,y:21},{x:123,y:12}];

var result = ph.map(function(el) {
    return [el.x, el.y];
});

document.body.innerHTML = '<pre>' + JSON.stringify(result, null, 4) + '</pre>'
&#13;
&#13;
&#13;

ES6语法也允许更简洁的表示法:

var result = ph.map(el => [el.x, el.y]);

答案 1 :(得分:2)

您可以使用 WindowsPhone: Write Text on Image control 来迭代并生成基于旧数组元素的新数组。

var arr = [{
  x: 1231,
  y: 121
}, {
  x: 131,
  y: 11
}, {
  x: 231,
  y: 21
}, {
  x: 123,
  y: 12
}];

var res = arr.map(function(v) {
  return [v['x'], v['y']];
});

document.write('<pre>' + JSON.stringify(res, null, 3) + '</pre>');

答案 2 :(得分:1)

您可以使用Array.prototype.map。在ES6中,它可以像

那样完成

&#13;
&#13;
var ph = [{x:1231,y:121},{x:131,y:11},{x:231,y:21},{x:123,y:12}];

var arr = ph.map(elem => [elem.x, elem.y]);

document.write(JSON.stringify(arr));
&#13;
&#13;
&#13;