const arr = [0,2,4,6,8,0];
var ret = arr.map((val,index,arr)=>{
return val*2
})
console.log(ret)
var list = []
arr.forEach(item =>{
if(list.indexOf(item) === -1){
list.push(item)
}
})
console.log(list)
//遍历
console.log(...list)
// 用法 usage
// 数组拼接
// const arr1 = ['a', 'b'];
// const arr2 = ['c'];
// const arr3 = ['d', 'e'];
// [...arr1, ...arr2, ...arr3]
// [...arr1, ...arr2,]
// 或
arr.push(...list)
// 数组赋值(深拷贝)
arr2 = [...arr]
arr2[0] = 2
console.log(arr)
console.log(arr2)
// find 找出第一符合判断的并返回 (不会改变原数组)
var rel = arr.find(function(val,index,arr){
return val > 5
})
console.log(rel)
console.log(arr)
// 判断数组arr里有没有4
// includes 与indexof差不多 但是indexof的意在参数值的第一个出现位置 如果
let rel2 = arr.includes(4)
console.log(rel2)
//ES6 提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值
// 去除数组的重复成员
let rel3 = [...new Set(arr)]
console.log(rel3)
// Set.prototype.add(value) :添加某个值,返回 Set 结构本身。
// Set.prototype.delete(value) :删除某个值,返回一个布尔值,表示删除是否成功。
// Set.prototype.has(value) :返回一个布尔值,表示该值是否为 Set 的成员。
// Set.prototype.clear() :清除所有成员,没有返回值。
let a = new Set(rel3);
let b = new Set(arr);
// 求并集
let ret4 = [...rel3,...arr]
// 交集
// let ret5 = [...a].filter(x => b.has(x))
//差集
console.log(ret4)
// console.log(ret5)
unique(ret4)
function unique(arr){
// set 去重
// return Array.from([...new Set(arr)])
// includes去重
var retArr = []
// includes
for(let i=0;i<arr.length;i++){
if(!retArr.includes(arr[i])){
retArr.push(arr[i])
}
}
console.log(retArr)
}
// promise1
// 'script start
// async1 start'
// async2
// script end'
// console.log('promise2')
// console.log('async1 end')
// console.log('setTimeout')