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()
方法接受一个回调函数作为参数,该函数会为数组中的每个元素执行一次。回调函数返回一个布尔值,用于决定该元素是否应该包含在新数组中。
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论