如何按值从多维对象中删除项目

时间:2013-06-21 07:33:43

标签: javascript object multidimensional-array

我需要按值从多维javascript对象中删除项目。例如,我有这个对象树(屏幕截图仅包含部分):https://dl.dropboxusercontent.com/u/13057084/files-tree.png

enter image description here

我需要删除“file”的值,所以例如从截图中的树我需要删除文件“9RuOxSPnTR-i_1.jpg”。

我试着用这个:

$.each(files, function (index_folder,folder) { // foreach files as folders
  $.each(folder, function (index_file,file_data) { // foreach folders as files (index_file = numeric index key of file)    
    delete files[index_folder][index_file];
  });
});

2 个答案:

答案 0 :(得分:2)

您使用delete从对象中删除属性,使用.splice删除数组中的元素:

> var o = {a: 1, b: 2};
> delete o.a;
true
> o;
{b: 2}

> var a = ['a', 'b', 'c', 'd'];
> a.splice(2, 1);
['c']
> a;
['a', 'b', 'd']

答案 1 :(得分:1)

使用拼接:

files[index_folder].splice(index_file, 1);