是否可以将Javascript Array.prototype.filter()函数与其他数组一起使用?
在Javascript代码中,我使用的数组包含其他数组。这个数组实际上有四层(有一个包含变量数组的数组),我需要从这个数组中删除一些特定值的字符串。我看过Array.prototype.filter()函数,认为它很有用,但我认为它不起作用,因为字符串在其他数组中。但是,由于几个原因,我不能具体地处理每个子数组。欢迎就如何使其工作或任何替代方案提出任何建议 这是在我的代码中创建的可能数组的示例:是否可以将Javascript Array.prototype.filter()函数与其他数组一起使用?,javascript,arrays,Javascript,Arrays,在Javascript代码中,我使用的数组包含其他数组。这个数组实际上有四层(有一个包含变量数组的数组),我需要从这个数组中删除一些特定值的字符串。我看过Array.prototype.filter()函数,认为它很有用,但我认为它不起作用,因为字符串在其他数组中。但是,由于几个原因,我不能具体地处理每个子数组。欢迎就如何使其工作或任何替代方案提出任何建议 这是在我的代码中创建的可能数组的示例: [ [ [ [ 1.0,
[
[
[
[
1.0,
1.0,
1.0
],
[
0.0,
1.0,
1.0
],
[
1.0,
0.0,
0.0
],
[
1.0,
0.0,
0.0
],
[
1.0,
0.0,
1.0
],
[
t
]
],
[
[
0.0,
0.0,
1.0,
0.0,
0.0
],
[
1.0,
0.0,
1.0,
1.0,
0.0
],
[
1.0,
1.0,
0.0,
1.0,
0.0
],
[
1.0,
0.0,
0.0,
1.0,
1.0
],
[
0.0,
1.0,
0.0,
0.0,
0.0
],
[
1.0,
0.0,
1.0,
1.0,
0.0
],
[
1.0,
0.0,
0.0,
1.0,
0.0
],
[
t
]
],
[
[
0.0,
1.0,
1.0,
1.0,
0.0,
0.0,
1.0
],
[
0.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0
],
[
1.0,
0.0,
0.0,
0.0,
1.0,
1.0,
0.0
],
[
1.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0
],
[
1.0,
0.0,
1.0,
1.0,
1.0,
0.0,
0.0
],
[
t
]
],
[
[
0.0,
0.0,
0.0,
1.0,
1.0
],
[
0.0,
1.0,
1.0,
0.0,
1.0
],
[
1.0,
1.0,
1.0,
0.0,
1.0
],
[
t
]
],
[
[
t
]
]
],
[
[
[
1.0,
1.0,
0.0
],
[
0.0,
1.0,
1.0
],
[
1.0,
1.0,
0.0
],
[
0.0,
1.0,
0.0
],
[
1.0,
0.0,
1.0
],
[
t
]
],
[
[
0.0,
0.0,
1.0,
0.0,
0.0
],
[
0.0,
0.0,
0.0,
0.0,
1.0
],
[
1.0,
1.0,
1.0,
1.0,
1.0
],
[
1.0,
0.0,
0.0,
0.0,
1.0
],
[
1.0,
0.0,
0.0,
1.0,
0.0
],
[
0.0,
0.0,
1.0,
0.0,
1.0
],
[
1.0,
0.0,
1.0,
0.0,
0.0
],
[
t
]
],
[
[
0.0,
0.0,
1.0,
1.0,
1.0,
0.0,
1.0
],
[
1.0,
0.0,
0.0,
1.0,
1.0,
0.0,
0.0
],
[
1.0,
0.0,
1.0,
0.0,
0.0,
1.0,
0.0
],
[
0.0,
1.0,
1.0,
0.0,
0.0,
0.0,
1.0
],
[
1.0,
1.0,
1.0,
1.0,
0.0,
1.0,
0.0
],
[
t
]
],
[
[
1.0,
0.0,
0.0,
1.0,
0.0
],
[
0.0,
1.0,
1.0,
0.0,
0.0
],
[
0.0,
1.0,
1.0,
1.0,
0.0
],
[
t
]
],
[
[
t
]
]
],
[
[
[
0.0,
1.0,
0.0
],
[
1.0,
0.0,
0.0
],
[
1.0,
1.0,
0.0
],
[
1.0,
0.0,
0.0
],
[
1.0,
1.0,
0.0
],
[
t
]
],
[
[
1.0,
1.0,
0.0,
0.0,
1.0
],
[
1.0,
0.0,
0.0,
0.0,
1.0
],
[
0.0,
0.0,
0.0,
0.0,
0.0
],
[
0.0,
0.0,
1.0,
1.0,
1.0
],
[
1.0,
1.0,
0.0,
1.0,
0.0
],
[
0.0,
0.0,
1.0,
1.0,
0.0
],
[
0.0,
0.0,
1.0,
1.0,
0.0
],
[
t
]
],
[
[
1.0,
1.0,
1.0,
0.0,
0.0,
0.0,
1.0
],
[
1.0,
0.0,
1.0,
0.0,
1.0,
0.0,
1.0
],
[
0.0,
0.0,
0.0,
1.0,
1.0,
1.0,
0.0
],
[
1.0,
0.0,
0.0,
0.0,
1.0,
0.0,
1.0
],
[
1.0,
1.0,
1.0,
0.0,
1.0,
1.0,
1.0
],
[
t
]
],
[
[
1.0,
0.0,
1.0,
0.0,
1.0
],
[
1.0,
1.0,
1.0,
0.0,
1.0
],
[
1.0,
0.0,
0.0,
0.0,
0.0
],
[
t
]
],
[
[
t
]
]
],
[
[
[
t
]
]
]
]
我需要删除所有的“t”字符串。这个数组比通常的数组小一点,并且每次执行代码时都会有不同的大小。如果不清楚我在问什么,或者你认为这会有帮助,我可以发布代码,但是代码有点大,所以我不想阻塞页面
阵列实际上有四层深
可以使用对象分解来获取第四个嵌套数组的值
let res = arr.filter(([[[inner]]]) => typeof inner !== "string");
t
不是你代码中的字符串是什么让你这么说的?只是澄清一下,该数组不是代码的一部分,而是在相关代码的测试运行期间生成的数组的值。值中缺少引号并不意味着代码中缺少引号。如果你有不同的理由这样说,请详细说明,我总是欢迎建设性的批评,但我想知道为什么我错了,而我错了。哦,哇。。。我决不会想到那个!但是它需要最新版本的语言。您也可以.map(x=>x.map(y=>y.map(z=>z.filter(t=>t.isString())))
(或类似的东西)谢谢你的回答,但可能是我理解不正确,或者是我的开发环境不兼容,因为它显示了语法错误。你能解释一下这段代码的作用吗?@AnthonyBaldini Destructuring assignment允许通过数组嵌套元素的属性获取对象值。例如让arr=[[[1]]];让[[[n]]]]=arr;console.log(n)//1
,看看您的示例中的大于或等于语句做了什么?