我有两个字符串数组,例如:
var array = ["one", "two", "three", "six", "twelve", "thirteen", "twenty", "forty", "fifty"]
var array1 = ["on", "t"];
我想过滤数组以取出以 array1 中的任何元素开头的任何元素。因此,过滤后的数组应如下所示:
["six", "forty", "fifty"];
我还需要通过取出包含 array1 中任何元素的任何元素来过滤数组。因此,过滤后的数组应如下所示:
["six"];
现在我正在使用类似的东西:
_.filter(array, function(n){return _.map(array1, function(m){
return _.startsWith(n, m)})})
正在返回
[[true, false], [false, true], [false, true], [false, false],
[false, true], [false, true], [false, true], [false, false], [false, false]];
最佳答案
不需要 lodash。
var array1 = ["one", "two", "three", "six", "twelve", "thirteen", "twenty", "forty", "fifty"]
var array2 = ["on", "t"];
array1=array1.filter(function(a){
return array2.every(function(b){
return !a.includes(b)
})
});
过滤器(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
每个(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every
包括(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
关于javascript - 使用 lodash 过滤两个字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34095363/