登录 主页

JavaScript Array filter() 方法 创建一个新的数组

2024-06-26 11:56AM

在动态排放项目中写代码的时候,我发现使用 filter()方法会创建一个新的数组。

例如下面这段代码:

var value = 3

var arr = [1, 2, 3, 4, 5, 3]

arr.filter(function(item) {
    return item !== value
})

console.log(arr)
// [ 1, 2, 3, 4, 5, 3]

arr.filter(function(item) { return item !== value }) 应该会返回一个新的数组,该数组包含了所有不等于 value 的元素。但是在日志中,数组 arr 仍然保持不变,没有被更新。

是因为Array.filter() 方法不会改变原始数组,而是返回一个新的数组

如果想要更新原始数组的内容,需要使用下面的这种方法:

arr = arr.filter(function(item) {
    return item !== value;
});

console.log(arr);
// [1, 2, 4, 5]

filter() 方法的返回值直接赋值给 arr 变量,这样就可以更新原始数组的内容了。

filter()方法的特点:

filter()方法会创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

filter()方法不会改变原始数组,它只是返回一个新的数组,而不会对原数组进行任何修改。

filter()方法不会对空数组进行检测。

filter()方法接受一个回调函数作为参数,该函数会为数组中的每个元素执行一次。回调函数返回一个布尔值,用于决定该元素是否应该包含在新数组中。

 

 


 

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论