如无特殊注释,本文中所有的
v 表示value,
i 表示index,
arr 表示array
1.数组遍历
---underscore
_.firEach(arr,i)
ES6写法:
var arr = [7, -1, 9, 7, -7, -10, 1, -2, 6, 3];
/**
* forEach(循环)和map(映射(进去几个,出来几个)):
* 1.可以遍历数组
* 2.不改变原来的数组
* 区别:
* 数组的forEach方法不可以返回一个新的数组,
* 但map方法可以返回一个新的数组,其元素是原数组的每个元素运算之后的结果
*/
//b的结果是undefined
let b = arr.forEach((v,i,array)=>{
return v*=2;
})
//c的结果是arr的每一个元素都元素之后返回的结果
let c = arr.map((v,i,array)=>{
return v*=2;
})
console.log(b,c)
//undefined [14, -2, 18, 14, -14, -20, 2, -4, 12, 6]
2.accumulate a single value from an array(汇总)
underscore
_.reduce()
ES6
arr.reduce((a,b)=>{
console.log(a+b)//开始:把第一项和第二项进行运算;然后:本上一次的结果和下一项进行运算
return a+=b
})
3.判断一些项或者所有项是否满足某条件:
some和every(数组中的一项或者几项满足某个条件,即:结果返回一个Boolean值)
var arr = [7, -1, 9, 7, -7, -10, 1, -2, 6, 3];
let a1 = arr.some(i=>{
return i===-10;
})
let a2 = arr.every(i=>{
return i===-10;
})
console.log(a1,a2)//true false
4.数组去重
underscore
_.uniq(arr)
ES6
var arr = [7, -1, 9, 7, -7, -10, 1, -2, 6, 3];
let arr1 = [...new Set(arr)];
console.log(arr1)//得到的便是去重后的数组
//所以说:
//数组转set结构:new Set(arr)
//Set结构转数组:[...seTarr]
5.在数组中查找某元素
//arr.find()很智障,返回第一个你想要查找的值,不知道有什么卵用,没有返回undefined,用于判断数组中是否存在这个玩意儿
let b1 = arr.find((i)=>{
return i===3
})
console.log(b1)
//arr.findIndex()返回的是第一个值为7的元素的下标
let b2 = arr.findIndex((i)=>{
return i===7
})
console.log(b2)
6.判断数组是否包含某个元素
ES6
console.log(arr.includes(3))
7.参数转化为数组
function silyB(a,s,d,f,g){
console.log([...arguments])
}
silyB(1,2,3,4,5)// [1, 2, 3, 4, 5]
silyB(1,2)//[1,2]
8.过滤器
arr.filter((i)=>{
return i>=5
})
9.把对象的属性名或者属性值拆分出来,形成一个数组
ES6
var obj = {
name:"gouZi",
age:12,
hobbies:["a","b","c"],
eat:(a)=>{return Math.pow(100,a)}
}
let cdd = Object.keys(obj);
console.log(cdd)
//["name", "age", "hobbies", "eat"]
let aaaa = Object.keys(obj).map(key => obj[key])
console.log(aaaa)
10.对象的属性的个数
ES6
Object.keys(obj).length
11.获取时间戳
Date().now()