javascript - 删除 json 对象中的数组项的问题

标签 javascript jquery json

我有以下代码用于将一个数组项移动到另一个数组项。

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/

相关文章:

javascript - 删除元素的内容但保留相同的子元素

javascript - jquery addclass 如果图像有特定的 alt 标签

javascript - 转换没有属性名称的 JSON

javascript - 如何检查 JavaScript 对象是否为 JSON

javascript - Protractor 无法在 element.all 语句内的 while 循环内执行单击操作

javascript - 如何将 1 个数组中的键与另一个对象匹配并获取每个键的总和

javascript - 动画摇摆不定与 jquery

javascript - 在javascript代码中将字符串分成多行

jquery - 动画在 IE 中不起作用,但在 Firefox 中起作用

java - 对 servlet 的一个请求可以有两种类型的响应