在javascript中从多维数组中删除元素的最便携方法是什么?

Dim*_*ims 2 javascript undefined multidimensional-array

在javascript中从多维稀疏数组中删除元素的最便携方法是什么?

如果行有时可能未定义,那么下面的工作是否正常?

if( content[row] ) {
    delete content[row][col];
}
Run Code Online (Sandbox Code Playgroud)

这会有效,会更好吗?

if( r=content[row] ) {
    delete r[col];
}
Run Code Online (Sandbox Code Playgroud)

s4y*_*s4y 7

这取决于.delete将在元素所在的数组中留下一个空格,如下所示:

var arr = [0, 1, 2, 3];
delete arr[1];
arr; // [0, undefined, 2, 3]
Run Code Online (Sandbox Code Playgroud)

要从数组中删除元素而不留下空洞,您应该使用splice():

arr.splice(1, 1); // Start deleting at index 1, delete one element
arr; // [0, 2, 3]
Run Code Online (Sandbox Code Playgroud)

您的两个示例都可以正常工作 - 如果content[row]不存在,if则不会评估语句的正文.