js 循环删除数组中指定的或符合条件的对象或重复的对象

小程序、前端交流群:609690978

一般删除数组中的某个对象或元素,我们会用到splice,如:

const arr = [1, 2, 3, 4, 5]
arr.splice(0, 1) // [2, 3, 4, 5]

如果要删除某个指定的对象或元素,如,删除3:

const arr = [1, 2, 3, 4, 5]
arr.splice(arr.findIndex(item => item === 3), 1) // [1, 2, 4, 5]

但是,如果要循环删除数组里但某个对象要如何操作呢?如下数组:

const arr = [
	{
      name: '北京', checked: true },
    {
      name: '北京', checked: false },
    {
      name: '上海', checked: false },
    {
      name: '广州', checked: false },
    {
      name: '深圳', checked: false }
  ]

两个北京,且一个checked为true一个为false。页面渲染的时候我们肯定只需要其中一个。比如我要保留选中的那个,也就是checked为true的。

for (var i = 0, flag = true, len = arr.length; i < len; flag ? i++ : i) {
     
    if (arr[i] && !arr[i].checked) {
     
      arr.splice(i, 1)
      flag = false
    } else {
     
      flag = true
    }
  }

小程序、前端交流群:609690978

你可能感兴趣的:(数组的操作,js,javascript,javascript,js)