js手写题(JavaScript学习笔记)

224 阅读1分钟

1.数组扁平化

输入表达式:[1,2,[3,4],[[5],[6]]]

function flatten(arr) {
    while (arr.some(item => Array.isArray(item))) {
          arr = [].concat(...arr)
    }
    console.log(arr)
}

arr.some(fn)表达式中some和||类似,有一个真值就返回true并停止剩余数组的迭代。
arr.concat(arg1,arg2)新建一个数组,数组中包含来自其他数组或其他项的值。

2.数组去重

输入:arr = [1,3,44,23,1,3]

const unique = function(arr) {
    return [...new Set(arr)]
}
    let unique = arr => [...new Set(arr)]

Set()集合是无序不重复的数组。

3深浅拷贝

什么是深浅拷贝?

image.png

image.png (图片、思路来源:juejin.cn/post/684490…)