Какой принцип стоит за этим? newArr.some(Array.isArray)
=== newArr.some(elem => Array.isArray(elem))
Как возможно, чтобы они были проанализированы как равные? Я думал, что newArr.some(Array.isArray)
=== newArr.some(Array.isArray())
(при условии, что some
- это все oop, а JS принимает каждый val как неявный аргумент веселья c), но это не так. Итак, я в замешательстве. Пожалуйста, помогите мне.
Здесь есть 2 применения описанных выше случаев:
function flatMultiArr(arr) {
let newArr = [].concat(...arr);
return newArr.some(Array.isArray)
? flatMultiArr(newArr)
: newArr
}
console.log();//[ 1, {}, 3, 4 ]
function flatMultiArr(arr) {
let newArr = [].concat(...arr);
return newArr.some(elem => Array.isArray(elem))
? flatMultiArr(newArr)
: newArr
}
console.log();//[ 1, {}, 3, 4 ]
Обратите внимание, что этот вопрос не о том, как сгладить многомерные массивы.