JavaScript 基础问答 四主要涉及到数组的相关知识,以下是本题的完整攻略。
扁平化处理是将多维数组变成一维数组的过程。可以通过循环递归的方式来实现。
function flatten(arr) {
var resultArr = [];
for (var i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
resultArr = resultArr.concat(flatten(arr[i]))
} else {
resultArr.push(arr[i]);
}
}
return resultArr;
}
var multidimensionalArray = [1, [2, [3, 4]], 5, [6]];
var flattenArray = flatten(multidimensionalArray);
console.log(flattenArray); // [1, 2, 3, 4, 5, 6]
上面的代码中,我们定义了一个flatten
函数,它接收一个数组作为参数,并返回扁平化后的结果。在flatten
函数中,我们通过循环遍历数组,判断元素是否是数组类型,如果是则通过递归调用flatten
函数,最终使用concat
方法将结果合并到resultArr
数组中。
可以通过Set
数据结构来快速的实现对数组的去重。
var arr = [1, 2, 2, 3, 3, 4];
var uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4]
上面的代码中,我们使用ES6中的Set
数据结构来对数组进行去重操作。将数组传入new Set()
中,可以得到一个去重后的Set对象,使用扩展运算符...
将Set对象转换成数组即可得到去重后的结果。
另外,也可以使用循环遍历的方式进行数组去重操作。以下是一段使用循环进行去重的代码:
function unique(arr) {
var resultArr = [];
for (var i = 0; i < arr.length; i++) {
if (resultArr.indexOf(arr[i]) === -1) {
resultArr.push(arr[i]);
}
}
return resultArr;
}
var arr = [1, 2, 2, 3, 3, 4];
var uniqueArr = unique(arr);
console.log(uniqueArr); // [1, 2, 3, 4]
上面的代码中,我们定义了unique
函数,它接收一个数组作为参数,并返回去重后的结果。在unique
函数中,我们通过indexOf
方法判断元素是否已经存在于resultArr
数组中,如果不存在则将其加入到resultArr
中。最终返回结果即可。
以上是本题的完整攻略,希望能对你有所帮助。
本文链接:http://task.lmcjl.com/news/10014.html