近来有一个学弟问我一个问题:怎么样对多维数组进行增删改查呢?于是百度了多维数组的概念,以及增删改查的方法,其中最印象深刻的就是下面的这篇回答了,于是就有了这篇笔记
摘录自: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]}`)
}
}
}
其实二并不是一个多维数组,它只是一个层级很深的一维数组,但是有什么关系呢,也许有很多人也勿以为是多维数组呢
后记:如果你遇到了我一样的问题,希望我的笔记对你有帮助。