如何过滤数组中的某些项目

时间:2017-10-31 20:48:08

标签: javascript arrays

我有这个数组

let arr = [ 'file_1.jpg' , 'file_2.png', 'file_3.pdf', 'file_4.html', 'folder.db' ]

我想过滤上有.jpg和.png的文件。

arr.filter() // desired output: [ 'file_1.png','file_2.png' ]

4 个答案:

答案 0 :(得分:3)

arr.filter(link => link.endsWith(".png") || link.endsWith(".jpg"));

答案 1 :(得分:2)

使用RegExp过滤:



const arr = [ 'file_1.jpg' , 'file_2.png', 'file_3.pdf', 'file_4.html', 'folder.db' ];

const pattern = /\.(png|jpg)$/; // string should end with .png or .jpg
const result = arr.filter((name) => pattern.test(name));

console.log(result);




答案 2 :(得分:1)

 const result = arr.filter( link => link.endsWith(".png") || link.endsWith(".jpg"));

答案 3 :(得分:0)

Filter Function

filter函数接受一个回调函数,该函数为列表中的每个项返回一个布尔值。

因此,您可以创建使用City::with('state')->where('state_id',$id); 的{​​{1}}来检查functionregular expression还是string

创建过滤表达式

  • 在JavaScript中,正则表达式如下所示:png
  • 点是一个特殊字符(匹配任何字符),因此您需要将其转义:jpg
  • 要匹配字符串集合中的字符串,您可以使用//并使用管道/\./分隔选项:()
  • 您可以在最后添加(|)来检查这是否是文字的结尾:/\.(jpg|png)/

然后使用test function,您可以检查字符串是否与您的表达式匹配。

$

工作示例



/\.(jpg|png)$/