some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。返回值为布尔类型
some() 方法会依次执行数组的每个元素:
- 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
- 如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.some(checkAdult);
}
输出结果为:
true
手写拍平数组
<script>
function flat(arr){
while(arr.some(item => Array.isArray(item))){
arr = [].concat.apply([],arr);
}
return arr;
}
var arr = [1, 2, 4, [6, 7, [4, 5]]]
const newarr = flat(arr)
console.log(newarr)
</script>
//递归实现
function flat(arr){
var arr1 =[]
arr.forEach((value) => {
if(value instanceof Array){
arr1 = arr1.concat(flat(value))
}else {
arr1.push(value)
}
})
return arr1
}
将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组
Array.from(new Set(arr.flat(Infinity))).sort((a,b) => return{(a-b)})