javascript怎么将一个由多个有序数组组成的数组合并为一个有序数组?

问题也可以描述为:将多个有序数组合并为一个有序数组?比如将[[1,2],[0,3,5],[-1,4]]合并出一个[-1, 0, 1, 2, 3, 4, 5],如果不考虑去重怎么写?考虑去重又怎么写?

慕哥9229398
浏览 1376回答 1
1回答

富国沪深

不考虑去重var arr = [[1, 2], [0, 3, 5], [-1, 4]]; arr = arr     .reduce((a, b) => a.concat(b), [])     .sort((a, b) => a - b); // 如果需要从小到大排序加上这个     console.log(arr);结果:考虑去重思路是使用对象的键名来缓存数字,然后用Object.keys取所有键名(利用了对象键名唯一性)var arr = [[1, 2], [0, 3, 5], [-1, 4]];var obj = {};arr = arr    .forEach(item => item.forEach(function(num) {        obj[num] = true;    }));arr = Object    .keys(obj)    .map(num => +num) // 这行主要是将键名取出来之后,数组中全部是字符串,将其都转成数字,以便后面排序    .sort((a, b) => a - b);console.log(arr);结果:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript