我是Javascript的新手,想要在数组中交换数组的项目。例如:
{
"data": [
[null, 1353064450],
[null, 1353064460],
[null, 1353064470],
[null, 1353064480],
[null, 1353064490]
],
"label": "cpu"
}
应该成为:
{
"data": [
[1353064450, null],
[1353064460, null],
[1353064470, null],
[1353064480, null],
[1353064490, null]
],
"label": "cpu"
}
我可能需要遍历数组并创建一个新数组?任何指针都会很棒!
答案 0 :(得分:3)
使用现代JS,您可以obj.data = obj.data.map(([x, y]) => [y, x])
。
跨浏览器的支持可能不完整,因此您应该使用转换器将其转换为ES5,至少在不久的将来。
原始回答:
使用Array.reverse
方法:
var obj = {
"data": [
[null, 1353064450],
[null, 1353064460],
[null, 1353064470],
[null, 1353064480],
[null, 1353064490]
],
"label": "cpu"
};
for(var i=0; i< obj.data.length; i++){
obj.data[i].reverse();
}
答案 1 :(得分:0)
这是一种适用于现代浏览器的有趣方式(例如IE9及更高版本):
response.data.forEach(Function.call.bind([].reverse));
或者,如果您需要.call
方法,并将this
值绑定到一个本身在this
值上运行的方法(如上所述) ,您可以制作可重复使用的.call
活页夹。
var callBind = Function.bind.bind(Function.call);
// Then use it like this
response.data.forEach(callBind([].reverse));