对于给定的数组,例如: oldArr: [{ id: 1, name: 'zs' },{ id: 2, name: 'ls' },{ id: 3, name: 'ww' },{ id: 4, name: 'zl' },{ id: 5, name: 'zs' }] 去掉相同name的一项呢,下面就简单封装一个方法
<div id="app">
<div class="validate">
原来的数组:<span>{{oldArr}}</span> <br />
去重后的数组:<span>{{newArr}}</span><br />
</div>
</div>
<script src="vue.js"></script>
<script>
const vm = new Vue({
el: '#app',
data: {
oldArr: [
{ id: 1, name: 'zs' },
{ id: 2, name: 'ls' },
{ id: 3, name: 'ww' },
{ id: 4, name: 'zl' },
{ id: 5, name: 'zs' }
]
},
computed: {
newArr: function() {
return this.removSDuplicate(this.oldArr, 'name');
}
},
methods: {
/**
@param oldArr 需要去重的数组
@param uniqueValue 对象中唯一的值
@return 输入结果
**/
removSDuplicate(oldArr, uniqueValue) {
let hash = {};
let newArr = oldArr.reduce(function(prev, item, _this) {
hash[item[uniqueValue]]
? ''
: (hash[item[uniqueValue]] = true && prev.push(item));
return prev;
}, []);
return newArr;
}
}
});
</script>
这样就可以了,你要的效果:

593



被折叠的 条评论
为什么被折叠?



