javascript - 使用 lodash 过滤两个字符串数组

标签 javascript arrays lodash

我有两个字符串数组,例如:

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)
  })
});

http://jsfiddle.net/pbvLn788/

过滤器(): 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/

相关文章:

javascript - 如何使按钮随其中文本的大小而变化

javascript - 将日期发送到服务器后,getDay() 在客户端不起作用

javascript - jQuery sum TD 点击事件

JavaScript 将数组元素移动到数组末尾

javascript - Google Maps API - 迭代标记,全部具有相同的内容

javascript - 如何在属性值上创建一个没有双引号的javascript对象

c - 如何在C程序中将矩阵的第一列元素复制到第二列

javascript - 组合两个数组以形成嵌套的javascript对象

javascript - 获取 Lodash 中排序属性的键

JavaScript 不区分大小写的数组通用排序