_.remove删除数组元素

本文介绍了如何使用lodash库中的_.remove方法来从数组中移除符合特定条件的元素,并展示了该方法如何修改原始数组及返回被删除元素组成的数组。

首先在html里引入lodash

<script src="../js/lodash.js"></script>

 _.remove实例

var array = [1, 2, 3, 4];
var evens = _.remove(array, function(n) {
  return n % 2 == 0;
});

console.log(array);
// => [1, 3]

console.log(evens);
// => [2, 4]

 

 需要注意两点:

1、原数组被修改;

2、返回被删除元素组成的数组;

### 使用 JavaScript Array 方法去除数组中的重复项 在 JavaScript 中,可以通过多种方式使用 Array 对象的方法来去除数组中的重复元素。以下是几种常见的方法及其详细说明: #### 方法一:使用 `Set` 和 `Array.from` `Set` 是一种数据结构,它只允许存储唯一的值。通过将数组转换为 `Set`,可以自动去除重复的元素,然后再将其转换回数组。 ```javascript function removeDuplicates(array) { return Array.from(new Set(array)); // 使用 Set 去重,并转换回数组 } const originalArray = [1, 2, 3, 3, 4, 4, 5]; const uniqueArray = removeDuplicates(originalArray); console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5] ``` 这种方法简洁高效,适用于大多数现代浏览器[^1]。 #### 方法二:使用两层循环 通过两层循环逐一比较数组中的元素,如果发现重复的元素,则从数组删除元素。 ```javascript function removeDuplicates(array) { for (let i = 0; i < array.length; i++) { for (let j = i + 1; j < array.length; j++) { if (array[i] === array[j]) { array.splice(j, 1); // 删除重复的元素 j--; // 因为删除了一个元素,索引需要回退一位 } } } return array; } const arr = [1, 2, 2, 3, 4, 4, 5, 5, 5]; const uniqueArr = removeDuplicates(arr); console.log(uniqueArr); // 输出: [1, 2, 3, 4, 5] ``` 虽然这种方法效率较低,但在某些简单场景下仍然可用[^2]。 #### 方法三:使用 `indexOf` 和手动构建新数组 通过遍历旧数组,检查每个元素是否已经存在于新数组中。如果不存在,则将其添加到新数组中。 ```javascript function unique(arr) { var newArr = []; // 新数组用于存储唯一值 var l = arr.length; // 获取数组长度 for (var i = 0; i < l; i++) { if (newArr.indexOf(arr[i]) === -1) { // 检查当前元素是否已存在于新数组中 newArr.push(arr[i]); // 如果不存在,则添加到新数组 } } return newArr; } var arr = unique([1, 2, 5, 4, 6, 7, 3, 3, 2, 1]); console.log(arr); // 输出: [1, 2, 5, 4, 6, 7, 3] ``` 这种方法逻辑清晰,适合初学者理解[^3]。 #### 方法四:使用 `filter` 和 `indexOf` `filter` 方法可以创建一个新数组,包含所有通过测试的元素。结合 `indexOf`,可以确保只保留首次出现的元素。 ```javascript const arr = [1, 2, 2, 3]; const uniqueArr = arr.filter((item, index, self) => { return self.indexOf(item) === index; // 确保只保留首次出现的元素 }); console.log(uniqueArr); // 输出: [1, 2, 3] ``` 这种方法利用了 `filter` 的特性,代码简洁且易于维护[^4]。 ### 总结 以上四种方法各有优劣,选择具体实现时需根据实际需求和性能要求进行权衡。通常情况下,推荐使用基于 `Set` 的方法,因为它语法简洁且性能较好。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值