在对象内部移动(不复制)属性 - 使用引用
Moving (not copying) property inside object - using reference
如何将数组元素移动到树中的另一个位置?
假设:
obj = [
{
x : [{/*obj*/},{/*obj*/}]
},
{
x : [{/*obj*/},{/*obj*/}]
},
{
x : [
{/*obj*/},
{/*obj*/},
{
x:[]
}
]
}
]
假设我只能使用 a
和 b
var a = obj[1];
var b = obj[2].x[2].x;
如何使用 obj[2].x[3].push()
将 obj[1]
移动到 obj[2].x[3].x
?
编辑
我犯了一个错误-发一级array/object,这样很容易。但是如何处理更深的对象呢?
数据样本已更改。
注意:我要问的是 - 我怎样才能从 运行dom 位置移动一个数组元素,同时保持其余部分完好无损(比如从 dom 中删除一个对象)
谢谢
可能是我理解错了,但是你发布的好像正是你想做的?有什么问题?
编辑:使用新的 obj 并使用 a 和 b 变量更新了答案。
var objArr = [{
x: [{ /*obj*/ }, { /*obj*/ }]
}, {
x: [{ /*obj*/ }, { /*obj*/ }]
}, {
x: [{ /*obj*/ }, { /*obj*/ }, {
x: []
}]
}];
var a = objArr[1];
var b = objArr[2].x[2].x;
b.push(a);
console.log("Checking if same Object: " + (b[0] === a));
objArr.splice(1, 1);
console.log(objArr);
您可以使用 splice 方法从数组中删除项目,然后按照您的建议推送。请注意,拼接将 return 移除对象或移除对象数组:
var obj = [ ... ];
var elem = obj.splice(1, 1);
obj[1].x[2].x.push(elem);
如何将数组元素移动到树中的另一个位置?
假设:
obj = [
{
x : [{/*obj*/},{/*obj*/}]
},
{
x : [{/*obj*/},{/*obj*/}]
},
{
x : [
{/*obj*/},
{/*obj*/},
{
x:[]
}
]
}
]
假设我只能使用 a
和 b
var a = obj[1];
var b = obj[2].x[2].x;
如何使用 obj[2].x[3].push()
将 obj[1]
移动到 obj[2].x[3].x
?
编辑
我犯了一个错误-发一级array/object,这样很容易。但是如何处理更深的对象呢?
数据样本已更改。
注意:我要问的是 - 我怎样才能从 运行dom 位置移动一个数组元素,同时保持其余部分完好无损(比如从 dom 中删除一个对象)
谢谢
可能是我理解错了,但是你发布的好像正是你想做的?有什么问题?
编辑:使用新的 obj 并使用 a 和 b 变量更新了答案。
var objArr = [{
x: [{ /*obj*/ }, { /*obj*/ }]
}, {
x: [{ /*obj*/ }, { /*obj*/ }]
}, {
x: [{ /*obj*/ }, { /*obj*/ }, {
x: []
}]
}];
var a = objArr[1];
var b = objArr[2].x[2].x;
b.push(a);
console.log("Checking if same Object: " + (b[0] === a));
objArr.splice(1, 1);
console.log(objArr);
您可以使用 splice 方法从数组中删除项目,然后按照您的建议推送。请注意,拼接将 return 移除对象或移除对象数组:
var obj = [ ... ];
var elem = obj.splice(1, 1);
obj[1].x[2].x.push(elem);