继续使用reduce方法,即可把数组对象展开为对象
arr.reduce((prev,next,index)=>{
prev[next.prop]=''
},{})
prev是最终的对象,{}是初始值,可以从数组对象里取值,赋值给prev,具体需要说明字段,直接赋值即可。
数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。
举个例子,假设有个名为 flatten 的函数可以做到数组扁平化,效果就会如下:
var arr = [1, [2, [3, 4]]];
console.log(flatten(arr)) // [1, 2, 3, 4]
知道了效果是什么样的了,我们可以去尝试着写这个 flatten 函数了
我们最一开始能想到的莫过于循环数组元素,如果还是一个数组,就递归调用该方法:
// 方法 1
var arr = [1, [2, [3, 4]]];
function flatten(a
JavaScript数组扁平化
对于下边这个深层嵌套数组,我们在某些环境可能需要将它进行扁平化(转换为一维数组),比如评论系统种,评论数据可能就会深层嵌套。所以我给大家带来了下边几种方法。
let arr = [1, [2, 3, 4], [3, 5, [1, [4]]]];
1. ES6中Array.prototype.flat()函数
对兼容性要求较高,不兼容ie,且要求node版本11以上。
执行时间:0.190ms (nodejs版本12.16.1)
arr.flat(Infinity);
// [1, 2, 3, 4, 3, 5, 1, 4]
2. 转换为字符串方法
toStri
本文实例讲述了JS数组扁平化、去重、排序操作。分享给大家供大家参考,具体如下:
在网上看到一个校招题目,已知一个数组var arr = [[1, 3, 2, 1],[5, 3, 4, 8, 5, 6, 5],[6, 2, 8, 9, [4, 11, 15, 8, 9, 12, [12, 13, [10], 14]]], 16],用js编写一个程序将这个数组扁平化,并得到一个升序且无重复值的数组。得到最终结果为:[1,2,3,4,5,6,8,9,10,11,12,13,14,15,16]。下面对数组扁平化、去重和排序就行总结。
一、数组扁平化
var arr = [[1, 3, 2, 1],
展开语法(Spread syntax),可以在函数调用/数组构造时, 将数组表达式或者string在语法层面展开;还可以在构造字面量对象时, 将对象表达式按key-value的方式展开。(译者注: 字面量一般指[1, 2, 3]或者{name: "mdn"}这种简洁的构造方式)
function sum(x, y, z) {
return x + y + z;
const ...
// 1.展开数组,可以将数组成员一个个展开
let arr = [1, 2, 3, 4, 5]
console.log(arr);//[1, 2, 3, 4, 5]
console.log(...arr);//1 2 3 4 5
// 2.需求:将arr添加到temp
let temp = ['a', 'b', 'c']
temp.p
有时候,出于某种目的,需要将数组转化成对象,一个简单快速的方法是就使用展开运算符号(…):
var fruits = [“banana”, “apple”, “orange”, “watermelon”];
var fruitsObj = { …fruits };
console.log(fruitsObj); // returns {0: “banana”, 1: “apple”, 2: “orange”, 3: “watermelon”, 4: “apple”, 5: “orange”, 6: “gra
name: 'saly',
role: [{role_id: 1, name: "管理员", status: 1}],
org: [{org_id: 1, name: "xx公司", parent_id:
首先什么是数组展开? 假如现在有这样一个需求:将后台的一个多重 List 数据,展开成一个 List 后,并去重后排序;
["a", "b", ["c", "d"], [["d"],"e"], "f"] => ["a", "b", "c", "d", "e&q