多维数组的运用_增删改查_JS_读书笔记

近来有一个学弟问我一个问题:怎么样对多维数组进行增删改查呢?于是百度了多维数组的概念,以及增删改查的方法,其中最印象深刻的就是下面的这篇回答了,于是就有了这篇笔记

摘录自:https://www.cnblogs.com/nb08611033/p/8287955.html

一.JS 三维数组赋值

一维数组:[1,2,3];  //数组的每一个元素是一个标量

二维数组:[["a","b","c"],[1,2,3],123];  //数组的每一个元素是一个一维数组

三维数组:[[["a","b","c"],[1,2,3]],[["a","b","c"],[1,2,3]]];  //数组的每一个元素是一个二维数组

需要注意的是,多维空数组不能直接向某个元素赋值,如

var arr1=[];//一维数组
var arr2=[];//二维数组
var arr3=[];//三维数组
//直接赋值,失败
arr3[0][0][0]=1;
//必须,逐层赋值
arr1[0]=0;
arr2[0]=arr1
arr3[0]=arr2;
//可以直接访问元素
console.log(arr3[0][0][0]);

 以下摘录自一篇印象深刻的百度知道:https://zhidao.baidu.com/question/988881727273072819.html

二:怎么样对层级深的数组进行增删改查

1、这个数据是 楼盘名称—栋数——单元号——房间号。

2、这json格式的楼盘数据表是存在数据库project表中的dashboard字段中。见图1,需求:我需求把这个字段用PHP取出后传递到前台,然后对这个楼盘进行栋数、单元、房号的增删改查操作。

劳烦大神帮我把增删改查的思路或者整理出来,主要是层级比较深,这都4-5级了。

 

{
    "name": "中海国际",
    "blocks": [{
        "id": 1,
        "name": "A座",
        "floors": [{
            "id": 1,
            "name": "1F",
            "rooms": ["1001", "1002"]
        }, {
            "id": 2,
            "name": "2F",
            "rooms": ["2001", "2002"]
        }]
    }]
}

 解答:

     var objs = {
            "name": "中海国际",
            "blocks": [{
                "id": 1,
                "name": "A座",
                "floors": [{
                    "id": 1,
                    "name": "1F",
                    "rooms": ["1001", "1002"]
                }, {
                    "id": 2,
                    "name": "2F",
                    "rooms": ["2001", "2002"]
                }]
            }]
        }
        console.log(`objs.name${objs.name}`)


        for (var i = 0; i < objs.blocks.length; i++) {
            var block = objs.blocks[i];
            var floor = block.floors;
            console.log(`block.name${block.name}`)
            for (var j = 0; j < floor.length; j++) {
                console.log(`floor[j].id ${floor[j].id}------floor[j].name${floor[j].name}`)
                var room = floor[j].rooms;
                for (var k = 0; k < room.length; k++) {
                    console.log(`room[k]${room[k]}`)
                }
            }
        }

其实二并不是一个多维数组,它只是一个层级很深的一维数组,但是有什么关系呢,也许有很多人也勿以为是多维数组呢 

后记:如果你遇到了我一样的问题,希望我的笔记对你有帮助。

原文地址:https://www.cnblogs.com/DZzzz/p/12964343.html