一、if判断优化(includes)
function verifyIdentity(identityId) {
if ([1, 2, 3, 4].includes(identityId)) {
return '你的身份合法,请通行!'
} else {
return '你的身份不合法'
}
}
二、数组去重
function unique(arr) {
return Array.from(new Set(arr))
}
function unique(arr) {
return arr.filter((element, index, array) => array.indexOf(element) === index)
}
function unique(arr) {
return arr.sort().reduce((preValue, curValue) => {
if (preValue.length === 0 || preValue[preValue.length - 1] !== curValue) {
preValue.push(curValue);
}
return preValue;
}, [])
}
三、数组扁平化(flat)实现
function flattenDeep(arr) {
return Array.isArray(arr)
? arr.reduce((acc, cur) => [...acc, ...flattenDeep(cur)], [])
: [arr]
}
function flattenDeep(arr) {
const result = []
const stack = [...arr]
while (stack.length !== 0) {
const val = stack.pop()
if (Array.isArray(val)) {
stack.push(...val)
} else {
result.unshift(val)
}
}
return result
}
flattenDeep(["a", ["b", "c"], ["d", ["e", ["f"]], "g"]])
function flat(arr, depth = 1) {
return depth > 0
? (arr.reduce((acc, cur) => {
if (Array.isArray(cur)) {
return [...acc, ...flat(cur, depth - 1)]
}
return [...acc, cur]
}, []))
: arr
}
flat(["a", ["b", "c"], ["d", ["e", ["f"]], "g"]])
flat(["a", ["b", "c"], ["d", ["e", ["f"]], "g"]], 2)