Uso de Object.values() (fusionar datos del mismo campo en el campo secundario)

1. Definición oficial

El método Object.values() devuelve una matriz de todos los valores de propiedad enumerables del objeto dado, en el mismo orden que se usa un bucle for...in (la diferencia es que un bucle for-in enumera las propiedades en la cadena prototipo).

2. gramática

Objeto.valores(obj)

Parámetros: obj es un objeto que devuelve valores de propiedad enumerables .

Valor de retorno: una matriz que contiene todos los valores de propiedad enumerables del propio objeto .

Descripción: Object.values() devuelve una matriz cuyos elementos son los valores de propiedad enumerables que se encuentran en el objeto. El orden de las propiedades es el mismo que el que se obtiene al recorrer manualmente los valores de las propiedades del objeto .

3. Ejemplos

Ejemplo 1:

 let testObj = { name: '小橙', age: '18', height: '177' }
      const list = Object.values(testObj)
      console.log('测试数据', list)

Ejemplo dos:

let testObj = {
        xq: { name: '小橙', age: '18', height: '177' },
        xw: { name: '小W', age: '18', height: '177' },
      }
      const list = Object.values(testObj)
      console.log('测试数据', list)
/*得到
[
    {
        "name": "小橙",
        "age": "18",
        "height": "177"
    },
    {
        "name": "小W",
        "age": "18",
        "height": "177"
    }
]

*/

Ejemplo 3: (énfasis en uso)

// 可以配合循环归类出你想要的字段 比如type相同的数据合并成一个children
let testObj = [
        { type: '测试1', name: '小橙', age: '18', height: '177' },
        { type: '测试1', name: '小W', age: '11', height: '177' },
        { type: '测试2', name: '小E', age: '12', height: '177' },
        { type: '测试3', name: '小R', age: '13', height: '177' },
        { type: '测试2', name: '小T', age: '14', height: '177' },
        { type: '测试3', name: '小Y', age: '19', height: '177' },
        { type: '测试4', name: '小U', age: '20', height: '177' },
      ]
      const list = this.getSortOutList(testObj)
      console.log('测试数据', list)

   methods: {
      getSortOutList(data) {
        let newObj = {}
        data.forEach((item, index) => {
          // 解构出每一个对象里面type字段的值
          let { type } = item
          // 如果在这个新对象里面没有找到,则新增一个对象
          if (!newObj[type]) {
            // 重构对象
            newObj[type] = {
              type,
              children: [],
            }
          }
          // 如果在对象里面找到有相同的 type 字段的值,则Push进入children里面
          newObj[type].children.push(item)
        })
        let newArr = Object.values(newObj)
        return newArr
      },
   }

/*得到的数据
[
    {
        "type": "测试1",
        "children": [
            {
                "type": "测试1",
                "name": "小橙",
                "age": "18",
                "height": "177"
            },
            {
                "type": "测试1",
                "name": "小W",
                "age": "11",
                "height": "177"
            }
        ]
    },
    {
        "type": "测试2",
        "children": [
            {
                "type": "测试2",
                "name": "小E",
                "age": "12",
                "height": "177"
            },
            {
                "type": "测试2",
                "name": "小T",
                "age": "14",
                "height": "177"
            }
        ]
    },
    {
        "type": "测试3",
        "children": [
            {
                "type": "测试3",
                "name": "小R",
                "age": "13",
                "height": "177"
            },
            {
                "type": "测试3",
                "name": "小Y",
                "age": "19",
                "height": "177"
            }
        ]
    },
    {
        "type": "测试4",
        "children": [
            {
                "type": "测试4",
                "name": "小U",
                "age": "20",
                "height": "177"
            }
        ]
    }
]

*/

Supongo que te gusta

Origin blog.csdn.net/weixin_42125732/article/details/132837866
Recomendado
Clasificación