Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从嵌套对象数组中删除项_Javascript_Angularjs_Multidimensional Array - Fatal编程技术网

Javascript 从嵌套对象数组中删除项

Javascript 从嵌套对象数组中删除项,javascript,angularjs,multidimensional-array,Javascript,Angularjs,Multidimensional Array,我正在使用AngularJS,在我的控制器中有这样一个对象数组: $scope.folderList = [{ name: 'root', path: 'uploads/', subs: [{ name: 'pictures', path: 'uploads/pictures', subs: [{ ... }] }, { name: 'videos',

我正在使用AngularJS,在我的控制器中有这样一个对象数组:

$scope.folderList = [{
    name: 'root',
    path: 'uploads/',
    subs: [{
        name: 'pictures',
        path: 'uploads/pictures',
        subs: [{
            ...
        }]
    }, {
        name: 'videos',
        path: 'uploads/videos',
        subs: [{
            ...
        }]
    }]
}];
对于这个嵌套数组,我有两条指令将它们设置在一个嵌套的UL-LI列表中,并带有ng repeat

现在我有了文件夹的嵌套列表,我想触发一个函数来删除选定的文件夹

因此,我使用参数中的“folder”触发我的函数删除,例如,如果我在图片文件夹上触发“delete”函数,folder参数将如下所示:

folder = {
    name: 'pictures',
    path: 'uploads/pictures',
    subs: [{ ... }]
}
我想从嵌套数组中删除这个对象

对于1级对象数组,我使用以下方法:

var index = $scope.folderList.indexOf(folder);
delete $scope.folderList.splice(index, 1);
但它(显然)不适用于嵌套数组

如何从JavaScript(或AngularJS)上的嵌套数组中轻松删除条目

我听说Underline.js就是为此而设计的,但我从未使用过它,在看过他们的文档后,我无法找到合适的函数来实现这一点


谢谢你的帮助

为此,您需要在
subs
上编写一个递归函数。如果搜索参数
文件夹
是相同的对象,但不是相同的引用,您可能还需要考虑如何执行比较。谢谢您的回复!我可以用“路径”到达我想去的地方。然后我会有每个父文件夹的几个索引?(例如,要进入“pictures”文件夹,我需要[0,0])。但是,我认为我做不到:“删除$scope.folderList.splice([0,0],1);”?如果所有索引都指向正确的文件夹,如何从这些索引中删除正确的文件夹?我能用接头吗?或者还有其他函数吗?您仍然使用splice,但是您使用正确的
this
var cd=$scope.folderList;cd=cd[0];cd.拼接(0,1)谢谢!它起作用了,而且比我想象的要容易,而且对于拼接来说非常明显,现在我看到了!