vue下一页,js数组扁平化

 2023-09-28 阅读 27 评论 0

摘要:关于:数组扁平化 简单概念:将一个维度很深的数组 -------》展开成一维数组 我们先定义一个函数:判断是否为数组 function isArray(arr) {var arrStr = '[object Array]';return Object.prototype.toString.call(arr) == arrStr; }  

关于:数组扁平化

简单概念:将一个维度很深的数组 -------》展开成一维数组

我们先定义一个函数:判断是否为数组

function isArray(arr) {var arrStr = '[object Array]';return Object.prototype.toString.call(arr) == arrStr;
}

  

vue下一页。实现方式一:

  

function flatten(arr) {var arr = arr || [],resArr = [],len = arr.length;for (var i = 0; i < len; i++) {if (isArray(arr[i])) {resArr = resArr.concat(flatten(arr[i]));} else {resArr.push(arr[i])}}return resArr;
}

实现方式二:

Array.prototype.flatten = function () {var resArr = [];// var len = this.length;// for(var i = 0; i < len; i++) {//     if(isArray(this[i])) {//         resArr = resArr.concat(this[i].flatten());//     }else{//         resArr.push(this[i])//     }// }this.forEach(function (item) {Object.prototype.toString.call(item) == '[object Array]' ? resArr = resArr.concat(item.flatten()) : resArr.push(item);})return resArr;
}
在数组原型上编程

实现方式三:

function newFlatten(arr) {var arr = arr || [];return arr.reduce(function (prev, next) {return Object.prototype.toString.call(next) == '[object Array]' ? prev.concat(newFlatten(next)) : prev.concat(next);}, [])
}
通过数组的reduce方法

实现方式四:一行代码  (es6)

const flattenNew = arr => arr.reduce((prev, next) => Object.prototype.toString.call(next) == '[object Array]' ? prev.concat(flattenNew(next)) : prev.concat(next), [])

js数组去重方法。 

转载于:https://www.cnblogs.com/chris-zy/p/11168509.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/102011.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息