ES6数组及编程题

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)
        })
    }
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页