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
,但它对我不起作用。
答案 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;
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中,它可以像
那样完成
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;