广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JS一维数组转化为三维数组方法
  • 340
分享到

JS一维数组转化为三维数组方法

2024-04-02 19:04:59 340人浏览 薄情痞子
摘要

有人提问想要将一维数组转化为三位数组的需求,下面就给提问的的小伙伴安排上 下面是后端同学返给我们的一维数组数据格式:     [{       '品牌': 'xiaomi', '机型

有人提问想要将一维数组转化为三位数组的需求,下面就给提问的的小伙伴安排上

下面是后端同学返给我们的一维数组数据格式:

    [{
      '品牌': 'xiaomi', '机型': '10', '配置': '512'
    },
    {
      '品牌': 'xiaomi', '机型': '10', '配置': '128'
    },
    {
      '品牌': 'xiaomi', '机型': '11', '配置': '128'
    },
    {
      '品牌': 'xiaomi', '机型': '11', '配置': '64'
    },
    {
      '品牌': 'iPhone', '机型': '10', '配置': '128'
    },
    {
      '品牌': 'iPhone', '机型': '11', '配置': '64'
    },
    {
      '品牌': 'iPhone', '机型': '12', '配置': '64'
    },
    {
      '品牌': 'honor', '机型': '4', '配置': '256'
    },
    {
      '品牌': 'honor', '机型': '5', '配置': '128'
    },
    {
      '品牌': 'honor', '机型': '6', '配置': '128'
    }];

下面是我们想要转化的数据格式(转化成三维数组 第一层级为品牌、第二层级为型号、第三层级为配置)

 

   [
      {
        "value": "xiaomi",
        "label": "xiaomi",
        "children": [
          {
            "value": "10",
            "label": "10",
            "children": [
              {
                "value": "512",
                "label": "512"
              },
              {
                "value": "128",
                "label": "128"
              }
            ]
          },
          {
            "value": "11",
            "label": "11",
            "children": [
              {
                "value": "128",
                "label": "128"
              },
              {
                "value": "64",
                "label": "64"
              }
            ]
          }
        ]
      },
      {
        "value": "iPhone",
        "label": "iPhone",
        "children": [
          {
            "value": "10",
            "label": "10",
            "children": [
              {
                "value": "128",
                "label": "128"
              }
            ]
          },
          {
            "value": "11",
            "label": "11",
            "children": [
              {
                "value": "64",
                "label": "64"
              }
            ]
          },
          {
            "value": "12",
            "label": "12",
            "children": [
              {
                "value": "64",
                "label": "64"
              }
            ]
          }
        ]
      },
      {
        "value": "honor",
        "label": "honor",
        "children": [
          {
            "value": "4",
            "label": "4",
            "children": [
              {
                "value": "256",
                "label": "256"
              }
            ]
          },
          {
            "value": "5",
            "label": "5",
            "children": [
              {
                "value": "128",
                "label": "128"
              }
            ]
          },
          {
            "value": "6",
            "label": "6",
            "children": [
              {
                "value": "128",
                "label": "128"
              }
            ]
          }
        ]
      }
    ]

首先我们定义一个arr变量接收我们的一维数组,然后将arr作为参数传递给我们转化数组的函数,函数返回的就是我们最终的三维数组了

下面就是我们的arrConversion源码:

    arrConversion (arr) {
      let keys = Object.keys(arr[0])
      let level1 = keys[0]//获取一级属性名称
      let level2 = keys[1]//获取二级属性名称
      let level3 = keys[2]//获取三级属性名称
      let list = Array.from(new Set(
        arr.map(item => {
          return item[level1]
        })))
      let subList = []
      list.forEach(res => {
        arr.forEach(ele => {
          if (ele[level1] === res) {
            let nameArr = subList.map(item => item.value)
            if (nameArr.indexOf(res) !== -1) {
              let nameArr2 = subList[nameArr.indexOf(res)].children.map(item => item.value)
              if (nameArr2.indexOf(ele[level2]) !== -1) {
                subList[nameArr.indexOf(res)].children[nameArr2.indexOf(ele[level2])].children.push({
                  value: ele[level3],
                  label: ele[level3],
                })
              } else {
                subList[nameArr.indexOf(res)].children.push({
                  value: ele[level2],
                  label: ele[level2],
                  children: [{
                    value: ele[level3],
                    label: ele[level3],
                  }]
                })
              }
            } else {
              subList.push({
                value: res,
                label: res,
                children: [{
                  value: ele[level2],
                  label: ele[level2],
                  children: [{
                    value: ele[level3],
                    label: ele[level3],
                  }]
                }]
              })
            }
          }
        })

      })
      return subList

    }

输出结果正确:

到此这篇关于js一维数组转化为三维数组方法的文章就介绍到这了,更多相关JS一维数组转化为三维数组内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: JS一维数组转化为三维数组方法

本文链接: https://www.lsjlt.com/news/163113.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JS一维数组转化为三维数组方法
    有人提问想要将一维数组转化为三位数组的需求,下面就给提问的的小伙伴安排上 下面是后端同学返给我们的一维数组数据格式:     [{       '品牌': 'xiaomi', '机型...
    99+
    2022-11-13
  • JS一维数组转化为三维数组的实现示例
    今天在CSDN上问答区看到一个提问的小伙伴,是想要将一维数组转化为三位数组的需求,正好不是很忙,乐于助人的我立马给这位同学安排上,当然也没有顾及那么多去看资料什么的,就直接按照自己的...
    99+
    2022-11-12
  • php三维数组转为二维数组的方法
    这篇文章主要介绍了php三维数组转为二维数组的方法,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。php三维数组转为二维数组的方法:1、通过“foreach ($result as $key =>$v){...}”方...
    99+
    2023-06-15
  • php二维数组转化为一维数组
    随着互联网的发展,网页开发也越来越受到关注。而其中最常用的编程语言之一就是PHP,它被广泛应用于网页的编写和数据库的交互。在PHP中,数组是一种非常重要的数据类型,它常常用来存储多个相关的值。在实际开发中,我们经常需要将一个二维数组转化为一...
    99+
    2023-05-19
  • php怎么将一维数组转为三维数组
    对于PHP程序员来说,数组是一个非常重要的概念,也是日常工作中必不可少的数据类型。在PHP中,数组可以分为一维数组、二维数组和多维数组等多种形式。其中,一维数组是最基本也是最常见的一种数组类型。在一些特殊的场合下,我们需要将一维数组转化为三...
    99+
    2023-05-14
  • php三维数组转成一维数组
    在PHP开发过程中,我们经常会处理多维的数组。有时候,我们需要将一个多维数组转换成一个一维数组,以便更方便地进行操作。本篇文章将介绍如何将PHP三维数组转换成一维数组,并提供代码实现方法。什么是PHP三维数组在PHP中,三维数组就是指数组中...
    99+
    2023-05-19
  • javascript中如何将一维数组转为三维数组
    这篇文章主要为大家展示了“javascript中如何将一维数组转为三维数组”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript中如何将一维数组转为...
    99+
    2022-10-19
  • php多维数组怎么转化为一维数组
    可以使用array_merge_recursive()函数将多维数组转化为一维数组。示例代码如下:```php$array = ar...
    99+
    2023-10-11
    php
  • python二维数组怎么转化为一维数组
    要将一个二维数组转化为一维数组,可以使用列表推导式(list comprehension)或者使用numpy库中的flatten()...
    99+
    2023-09-27
    python
  • js将多维数组转为一维数组后去重排序
    目录先说一下多维数组拍平方法一: flat()方法二: 用空字符串拼接再用split()分割一下方法三: toString()方法四: join()方法五:递归调用方法六:使用red...
    99+
    2022-11-12
  • vue如何将二维数组转化为一维数组
    目录将二维数组转化为一维数组需求具体实现将多维数组转一维数组6种方法ES6 flat方法递归reduce +concat + 递归join+splittoString+splitev...
    99+
    2022-11-13
  • vue怎么将二维数组转化为一维数组
    本篇内容主要讲解“vue怎么将二维数组转化为一维数组”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么将二维数组转化为一维数组”吧!将二维数组转化为一维数组需求数组嵌套数据,导致循环不方便...
    99+
    2023-06-30
  • php二维数组转化成一维数组的方法是什么
    可以使用array_merge()函数将二维数组转化为一维数组。以下是示例代码:```php$twoDimensionalArray...
    99+
    2023-09-29
    php
  • JS中一维数组和二维数组怎么互转
    本篇内容主要讲解“JS中一维数组和二维数组怎么互转”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS中一维数组和二维数组怎么互转”吧!一维数组转二维数组 arr1to2(arr,&nb...
    99+
    2023-06-29
  • php如何将二维数组转为一维数组
    本篇内容主要讲解“php如何将二维数组转为一维数组”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何将二维数组转为一维数组”吧!php二维数组转为一维数组的方法:1、用array_colu...
    99+
    2023-06-21
  • php怎么将一维数组转为二维数组
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑在php中,可以利用array_chunk()函数来将一维数组转为二维数组。示例:<php header("Content-type:text/html...
    99+
    2021-07-28
    php 数组 一维数组转二维数组
  • php怎么将二维数组转为一维数组
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑二维数组转一维数组总结 例如将如下二位数组转以为以为一维数组$records = [ [ 'id' => 2135,...
    99+
    2014-10-22
    php 数组 二维数组 一维数组
  • php怎样将一维数组转为二维数组
    php怎样将一维数组转为二维数组,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在php中,可以利用array_chunk()函数来将一维数组转为二维数组,该函数的作用就是分割数...
    99+
    2023-06-29
  • php 二维数组转一维数组
    在 PHP 中,数组是一种非常强大和灵活的数据结构,可以存储多种不同类型的数据。PHP 的数组可以是单维数组、二维数组、多维数组等。在实际开发过程中,我们经常需要将二维数组转换为一维数组,以便更方便地遍历和处理数据。本文将介绍 PHP 中如...
    99+
    2023-05-23
  • php 一维数组转二维数组
    在 PHP 中,有时候会遇到将一个一维数组转换成二维数组的需求。例如,我们可能需要处理一个包含很多数据的一维数组,但是这些数据需要按照某种规则分组,这时候就需要将一维数组转换成二维数组。接下来我们来介绍一下如何实现一维数组转二维数组的方法。...
    99+
    2023-05-23
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作