如何将数组元素移动到树中的其他位置?
假设:
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[1]
将obj[2].x[3].x
移至obj[2].x[3].push()
?
修改
我犯了一个错误 - 发布一个级别的数组/对象,这很容易。但是如何用更深层的物体来做呢? 数据样本已更改。
注意:我问的是 - 如何从随机位置移动数组元素,同时保持其余部分完整(如从dom中删除对象)
感谢
答案 0 :(得分:1)
也许我误会了,但似乎你发布了你想要做的事情?有什么问题?
修改:使用新的obj并使用a和b变量更新了答案。
angular.module('myModule', ['ui.bootstrap'])
.directive('myDirective', ['$timeout', function ($timeout) {
var controllerFn = ['$scope', '$uibModal', function ($scope, $uibModal) {
$scope.names = ['Mario','Wario','Luigi'];
$scope.openModal = function () {
var modalInstance = $uibModal.open({
animation: true,
template: '<my-modal>',
size: 'lg',
resolve: {
items: function () {
return $scope.names;
}
}
});
};
}];
return {
restrict: 'E',
templateUrl: '/Folder/my-directive.html',
controller: controllerFn,
scope: {
}
};
}])
.directive('myModal', ['$timeout', function ($timeout) {
var controllerFn = ['$scope', function ($scope) {
}];
return {
restrict: 'E',
templateUrl: '/Folder/my-modal.html',
controller: controllerFn,
scope: {
}
};
}]);
&#13;
答案 1 :(得分:0)
您可以使用splice方法从数组中删除项目,然后按照建议推送。请注意,splice将返回已删除对象或已删除对象的数组:
var obj = [ ... ];
var elem = obj.splice(1, 1);
obj[1].x[2].x.push(elem);