去重数据:
var arr = [{ key: '01', value: '西施' }, { key: '02', value: '王昭君' }, { key: '03', value: '杨玉环' }, { key: '04', value: '貂蝉' }, { key: '01', value: '西施' }, { key: '01', value: '西施' }];
方法一:
利用对象访问属性的方法,判断对象中是否存在key
var result = []; var obj = {}; for (var i = 0; i < arr.length; i++) { if (!obj[arr[i].key]) { result.push(arr[i]); obj[arr[i].key] = true; } } console.log(result); // [{key: "01", value: "西施"},{key: "02", value: "王昭君"},{key: "03", value: "杨玉环"},{key: "04", value: "貂蝉"}]
方法二:
利用两层for循环和布尔值的方法进行去重
var result = []; for (var i = 0; i < arr.length; i++) { var flag = true; for (var j = 0; j < result.length; j++) { if (arr[i].key === result[j].key) { flag = false; } } if (flag) { result.push(arr[i]); } } console.log(result); // [{key: "01", value: "西施"},{key: "02", value: "王昭君"},{key: "03", value: "杨玉环"},{key: "04", value: "貂蝉"}]
方法三:
利用两层for循环和splice的方法进行去重,此方法会更改数组的原始数据
for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { if (arr[i].key === arr[j].key) { arr.splice(j, 1); j = j - 1; } } } console.log(arr); // [{key: "01", value: "西施"},{key: "02", value: "王昭君"},{key: "03", value: "杨玉环"},{key: "04", value: "貂蝉"}]
方法四:
利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值(ie9以下不支持此方法)
var obj = {}; arr = arr.reduce(function (item, next) { obj[next.key] ? '' : obj[next.key] = true && item.push(next); return item; }, []); console.log(arr); // [{key: "01", value: "西施"},{key: "02", value: "王昭君"},{key: "03", value: "杨玉环"},{key: "04", value: "貂蝉"}]
今天的文章数组中的对象去重_如何对一个数组去重分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/53822.html