Deduplicación de matriz Vue basada en propiedades de objeto y deduplicación de objetos de matriz

caso uno

Requisito: Un 'objeto de matriz', según el atributo 'id' del objeto a deduplicar.

Si los dos objetos 'id' son iguales, se realizará la 'deduplicación'

const dataArr = [
  {
    id: 1,
    name: '名称1'
  },
  {
    id: 2,
    name: '名称2'
  },
  {
    id: 2,
    name: '名称3'
  },
  {
    id: 2,
    name: '名称4'
  },
  {
    id: 3,
    name: '名称5'
  },
  {
    id: 4,
    name: '名称6'
  },
  {
    id: 5,
    name: '名称7'
  }
]

Primero use el mapa () para obtener todos los valores de identificación

const a = dataArr.map(item => {
  return item.id
})
console.log(a) // ['a', 'b', 'b', 'b', 'c', 'b', 'd']

Luego use filter () para filtrar Use indexOf() para obtener el subíndice de cada elemento en la matriz (devuelva repetidamente el subíndice encontrado por primera vez) es igual al subíndice de la matriz sin filtrar y devuelva todas las matrices que cumplen con el condiciones

const b = dataArr.filter((item, index) => {
  return a.indexOf(item.id) === index
})
console.log(b)

El b obtenido es la matriz filtrada

[
  { id: 'a', name: '名称1' },
  { id: 'b', name: '名称2' },
  { id: 'c', name: '名称5' },
  { id: 'd', name: '名称7' }
]

 caso dos

Requisito: Un 'objeto de matriz', de acuerdo con el atributo 'id' y el atributo 'nombre' a deduplicar, es decir, los dos objetos son congruentes.

Si los dos objetos 'id' y 'name' son iguales, se realizará la 'deduplicación'

const dataArr = [
    {
        id: 1,
        name: '名称1'
    },
    {
        id: 2,
        name: '名称2'
    },
    {
        id: 2,
        name: '名称2'
    },
    {
        id: 2,
        name: '名称3'
    },
    {
        id: 3,
        name: '名称4'
    },
    {
        id: 4,
        name: '名称4'
    },
    {
        id: 5,
        name: '名称5'
    }
]

const arr1 = []
const arr2 = []

for (let i = 0; i < dataArr.length; i++) {
    if (!(arr1.includes(dataArr[i].id + '-' + dataArr[i].name))) { // 1-名称1 / 2-名称2 等等。。。
        // 数组中没有就往里添加
        arr1.push(dataArr[i].id + '-' + dataArr[i].name)
        arr2.push({
            id: dataArr[i].id,
            name: dataArr[i].name
        })
    }
}

// console.log(arr2)
// [
//     { "id": 1, "name": "名称1" },
//     { "id": 2, "name": "名称2" },
//     { "id": 2, "name": "名称3" },
//     { "id": 3, "name": "名称4" },
//     { "id": 4, "name": "名称4" },
//     { "id": 5, "name": "名称5" }
// ]

Supongo que te gusta

Origin blog.csdn.net/weixin_44523517/article/details/126611312
Recomendado
Clasificación