我有以下代码将一个数组项移动到另一个数组项。
var data={"Used":[{"Items":[{"ID":1,"Name":"item1"},{"ID":2,"Name":"item1"}]}],"UnUsed":[{"Items":[]}]};
data.UnUsed[0].Items.splice(0,0,data.Used[0].Items);
var len=data.Used[0].Items.length;
for(i=0;i<len;i++)
{
data.Used[0].Items.splice(0,1);
}
console.log(JSON.stringify(data));
当前输出为:
{"Used":[{"Items":[]}],"UnUsed":[{"Items":[[]]}]}
预期输出为:
{"Used":[{"Items":[]}],"UnUsed":[{"Items":[[{"ID":1,"Name":"item1"},{"ID":2,"Name":"item1"}]]}]}
答案 0 :(得分:1)
以下是一个解决方案:http://jsfiddle.net/K3cz3/
var data={"Used":[{"Items":[{"ID":1,"Name":"item1"},{"ID":2,"Name":"item1"}]}],"UnUsed":[{"Items":[]}]};
var len = data.Used[0].Items.length;
for (i = 0; i < len; i++) {
data.UnUsed[0].Items.splice(0, 0, data.Used[0].Items[0]);
data.Used[0].Items.splice(0, 1);
}
console.log(JSON.stringify(data));
这是一个更好的一个,可以更清楚地发生了什么:
var len = data.Used[0].Items.length;
for (i = 0; i < len; i++) {
data.UnUsed[0].Items.push(data.Used[0].Items.pop());
}
console.log(JSON.stringify(data));
小提琴:http://jsfiddle.net/K3cz3/1/
或者简单地说:
data.UnUsed[0].Items = data.Used[0].Items;
data.Used[0].Items = [];
console.log(JSON.stringify(data));
答案 1 :(得分:1)