Utilisation de Object.values() (fusion des données du même champ dans le champ enfants)

1. Définition officielle

La méthode Object.values() renvoie un tableau de toutes les valeurs de propriété énumérables de l'objet donné lui-même, dans le même ordre que l'utilisation d'une boucle for...in (la différence est qu'une boucle for-in énumère les propriétés dans la chaîne prototype).

2. Grammaire

Objet.valeurs (obj)

Paramètres : obj est un objet qui renvoie des valeurs de propriétés énumérables .

Valeur de retour : un tableau contenant toutes les valeurs de propriétés énumérables de l'objet lui-même .

Description : Object.values() renvoie un tableau dont les éléments sont les valeurs de propriétés énumérables trouvées sur l'objet. L'ordre des propriétés est le même que celui donné en parcourant manuellement les valeurs des propriétés de l'objet .

3. Exemples

Exemple 1:

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

Deuxième exemple :

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"
    }
]

*/

Exemple 3 : (accent sur l'utilisation)

// 可以配合循环归类出你想要的字段 比如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"
            }
        ]
    }
]

*/

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42125732/article/details/132837866
conseillé
Classement