1. forEach()
var arr = [1,2,3,4];
arr.forEach((item,index,arr) => {
console.log(item) //结果为1,2,3,4})// 数组的遍历方法,无返回值,不改变原数组
2. map()
var arr = [1,2,3,4];
arr.map((item,index,arr) => {
return item*10 //新数组为10,20,30,40})//map遍历数组,返回一个新数组,不改变原数组的值。
3. filter()
var arr = [1,2,3,4];
arr.filter((item,index,arr) => {
return item > 2 //新数组为[3,4]})//filter过滤掉数组中不满足条件的值,返回一个新数组,不改变原数组的值。
4. reduce()
var arr = [1,2,3,4];
arr.reduce((sum,item,index,arr) => {
// sum 上次循环返回的值,若为第一次循环值为 origin
// item 循环项
// index 循环下表
// arr 源数组
return sum + item;},origin)//reduce 遍历数据求和。
5. some()
var arr = [1,2,3,4];
arr.some((item,index,arr) => {
return item > 3 //结果为true})//遍历数组每一项,有一项返回true,则停止遍历,结果返回true。不改变原数组
6. every()
var arr = [1,2,3,4];
arr.every((item,index,arr) => {
return item > 1 //结果为false})//遍历数组每一项,每一项返回true,则最终结果为true。当任何一项返回false时,停止遍历,返回false。不改变原数组// 与some()方法互补
7. all()方法
多个异步操作执行完后才执行回调
Promise.all([promise1,promise2,promise3]).then(results => {
// results 是上面多个promise回调结果的数组});
—————————————————————————————————————————
1. 使用解构,实现两个变量的值的交换
let a = 1;
let b = 2;[a,b] = [b,a];
2. 利用数组推导,计算出数组 [1,2,3,4] 每一个元素的平方并组成新的数组。
var arr1 = [1, 2, 3, 4];
var arr2 = [for (i of arr1) i * i];
console.log(arr2);
3. 使用ES6改下面的模板
let iam = "我是";
let name = "王德发";
let str = "大家好,"+iam+name+",多指教。";
改:
let iam = `我是`;
let name = `王德发`;
let str = `大家好,${iam+name},多指教。`;
4. 把以下代码使用两种方法,来依次输出0到9?
var funcs = []
for (var i = 0; i < 10; i++) {
funcs.push(function() { console.log(i) })
}
funcs.forEach(function(func) {
func()
})
答:分别使用es5的闭包和es6的let
// ES5告诉我们可以利用闭包解决这个问题
var funcs = []
for (var i = 0; i < 10; i++) {
func.push((function(value) {
return function() {
console.log(value)
}
}(i)))
}
// es6
for (let i = 0; i < 10; i++) {
func.push(function() {
console.log(i)
})
}