js怎么处理多维对象数组

JavaScript010

js怎么处理多维对象数组,第1张

var html=''

for (var i = 0i <arr.lengthi++) {

var list=arr[i]

html+='<ul>'

html+='<li> name:'+list.name+'</li>'

html+='<li> sex:'+list.sex+'</li>'

html+='</ul>'

}

document.getElementsByTagName('body')[0].innerHTML=html

这样的数据结构用法不算难,只是一维数组,不用两次遍历,再用对象的属性时没必要再遍历了,直接取其中的属性就Ok了

代码运行一遍相信你能看懂的

数组扁平化定义:在前端项目开发过程中,偶尔会出现层叠数据结构的数组,需要把多层数组转换为一级数组(即提取嵌套数组元素最终合并为一个数组),使其内容合并并且展开。

遍历数组的方案:

for循环

for...of

for...in

forEach()

entries()

keys()

values()

reduce()

map()

判断元素是否是数组的方案:

instanceof

constructor

object.prototype.toString.call

isArray

将数组元素进行展开一层的方案:

扩展运算法 + concat(concat() 方法用于合并两个或多个数组,在拼接的过程中加上扩展运算符会展开一层数组)

concat + apply(主要是利用 apply 在绑定作用域时,传入的第二个参数是一个数组或者类数组对象,其中的数组元素将作为单独的参数传给 func 函数。也就是在调用 apply 函数的过程中,会将传入的数组一个一个的传入到要执行的函数中,也就是相当对数组进行了一层的展开。)

toString + split(不推荐使用 toString + split 方法,因为操作字符串是很危险的事情,如果数组中的元素所有都是数字的话,toString + split 是可行的,并且是一步搞定。)

最终手写的flat()方法为:

参考博客如下,注明一下出处,感谢大神们,希望自己可以多多练习,多多回顾:

三元博客

JS数组reduce()方法详解及高级技巧

数组flat方法实现