我有以下代码用于将一个数组项移动到另一个数组项。
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"}]]}]}
最佳答案
这是一种解决方案: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));
fiddle :http://jsfiddle.net/K3cz3/1/
或者简单地说:
data.UnUsed[0].Items = data.Used[0].Items;
data.Used[0].Items = [];
console.log(JSON.stringify(data));
fiddle :http://jsfiddle.net/K3cz3/2/
关于javascript - 删除 json 对象中的数组项的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23431649/