删除对象的思路

本文详细介绍了在JavaScript中移除数组中的特定元素和全部元素的方法,包括使用`removeChild`、`splice`等操作进行数组元素的删除,并提供循环移除全部元素的代码示例。

移除数组中的某个对象,比方说array数组索引号为i的对象,可以这样实现:

  1. removeChild(array[i]);
  2. array.splice(i, 1);

移除数组中的全部对象,要用循环一个个从显示列表中移除,因为是全部移除,不需要一个个从数组中删除了,最后将数组设为null就行了:

  1. for(var i in array) {
  2. removeChild(array[i]);
  3. }
  4. array = null;



(在天地会看到的)

删除数组中重复对象有多种方法,以下为几种常见的实现方式: ### 方法一:使用对象存储字符串化的对象 可以将对象转换为字符串,然后使用一个对象来存储这些字符串,过滤掉重复的对象。示例代码如下: ```javascript function delObj(obj) { var uniques = []; var stringify = {}; for (var i = 0; i < obj.length; i++) { var keys = Object.keys(obj[i]); keys.sort(function (a, b) { return (Number(a) - Number(b)); }); var str = ''; for (var j = 0; j < keys.length; j++) { str += JSON.stringify(keys[j]); str += JSON.stringify(obj[i][keys[j]]); } if (!stringify.hasOwnProperty(str)) { uniques.push(obj[i]); stringify[str] = true; } } return uniques; } ``` 此方法的核心思路是将对象的键和值转换为字符串,然后将其作为对象的属性名存储,以此判断对象是否重复[^2]。 ### 方法二:使用双重循环和 `splice` 方法 通过双重循环遍历数组,比较每个对象的特定属性,若发现重复则使用 `splice` 方法删除重复项。示例代码如下: ```javascript var goodsList = [ {goods: {id: 1}, price: 1, count: 1}, {goods: {id: 1}, price: 1, count: 1}, {goods: {id: 2}, price: 2, count: 2}, {goods: {id: 2}, price: 2, count: 2} ]; for (var i = 0; i < goodsList.length; i++) { var item = goodsList[i]; for (var j = i + 1; j < goodsList.length; j++) { if (item.goods.id == goodsList[j].goods.id) { goodsList.splice(j, 1); i--; } } } console.log(goodsList); ``` 该方法通过比较 `goods.id` 属性来判断对象是否重复,并使用 `splice` 方法删除重复项[^3]。 ### 方法三:使用 `Map` 对象 `Map` 对象可以更方便地存储和查找键值对,利用其特性可以高效地删除重复对象。示例代码如下: ```javascript function removeDuplicates(arr) { const map = new Map(); return arr.filter(item => { const key = JSON.stringify(item); if (!map.has(key)) { map.set(key, true); return true; } return false; }); } ``` 此方法将对象转换为字符串作为 `Map` 的键,通过 `Map` 的 `has` 方法判断对象是否重复[^4]。 ### 方法四:使用 `JSON.stringify` 和 `Set` 可以将对象转换为字符串,然后使用 `Set` 来存储这些字符串,最后将 `Set` 转换回数组。示例代码如下: ```javascript function removeDuplicates(arr) { const set = new Set(arr.map(item => JSON.stringify(item))); return Array.from(set).map(item => JSON.parse(item)); } ``` 该方法将对象转换为字符串存储在 `Set` 中,利用 `Set` 的唯一性去除重复项,最后再将字符串转换回对象[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值