美文网首页
2018-11-12

2018-11-12

作者: kathyever | 来源:发表于2018-11-12 08:55 被阅读0次

    Q: 将上期的题目使用map进行处理

       var a = [
         {
           name: 'kathy',
           age: 18
         },
         {
           name: 'qianzhang',
           age: 19
         },
         {
           name: 'qingchong',
           age: 20
         }
       ]
    

    变量a为一个保存着3个对象元素的数组,每个对象都有(name, age)两个属性,
    请将变量a中每个对象元素的的age属性+1,使a数组变成如下结构

        var a = [
         {
           name: 'kathy',
           age: 19
         },
         {
           name: 'qianzhang',
           age: 20
         },
         {
           name: 'qingchong',
           age: 21
         }
       ]
    

    ◆A:

    var a = [
         {
           name: 'kathy',
           age: 18
         },
         {
           name: 'qianzhang',
           age: 19
         },
         {
           name: 'qingchong',
           age: 20
         }
       ];
      function num(item){
          return item.age+=1
      }
      a.map(num)
      console.log(a)
    
    

    同上,我们再为该数组做变换,将a的所有name添加前缀'name_',更改后的结果如下

        var a = [
         {
           name: 'name_kathy',
           age: 19
         },
         {
           name: 'name_qianzhang',
           age: 20
         },
         {
           name: 'name_qingchong',
           age: 21
         }
       ]
    

    ◆A:

    var a = [
         {
           name: 'kathy',
           age: 18
         },
         {
           name: 'qianzhang',
           age: 19
         },
         {
           name: 'qingchong',
           age: 20
         }
       ];
      function num(item){
          return item.name="name_" +item.name;
      }
      a.map(num)
      console.log(a)
    

    使用array.map 重写之前的实现

    Q:如何删除数组中的指定元素?(如果可以,请使用两种方法实现)

      var a = [2, 3, 4, 5, 6, 7]
    

    请编写function,实现删除指定元素,并返回处理过的数组。
    例:

      function remove(arr, which){
    
      }
      var b = remove(arr, 4)
    

    返回值b应为[2, 3, 5, 6, 7]

    ◆A:

    //array.splice(start,deleteCount,item...)
    var a = [2, 3, 4, 5, 6, 7];
    var removed = a.splice(1,1);
    console.log(a);//2,4,5,6,7
    //splice方法从array中移除一个或多个数组,并用新的item替换它们。
    //参数start是从数组array中移除元素的开始位置。参数deleteCount是要移除的元素的个数。
    
    //array.slice(start,end)
    var a = [2, 3, 4, 5, 6, 7];
    var a2=a.slice(2);
    
    console.log(a2);//4,5,6,7
    //该方法是对数组进行部分截取,并返回一个数组副本;参数start是截取的开始数组索引,end参数等于要取的最后一个字符的位置值加上1(可选)
    

    Q: 给定数组,请求出该数组所有元素之和。(如果可以,请使用两种及以上方法实现)

      var a = [2, 3, 4, 5, 6, 7, 8]
      function add(arr) {
        // return sum
      }
      var b = add(a)
    

    b应为35

    提示: for循环,array.forEach, array.reduce

    ◆A:

    //array.reduce
    var a = [2, 3, 4, 5, 6, 7, 8]
    function compare(prev,cur){
      return prev+cur
    };
    var b=a.reduce(compare)
    console.log(b)//35
    //reduce( )方法是从数组的第一项开始,逐个遍历到最后。
    
    //for循环
    var sum=0;
    var a=[2, 3, 4, 5, 6, 7, 8];
    for(var i=0;i<a.length;i++){
    sum+=a[i];
    }
    console.log(sum)//35
    
    //array.forEach
    var sum=0;
    var a=[2, 3, 4, 5, 6, 7, 8];
    a.forEach(function(value,index,array){
        sum+=value;  
        });
    console.log(sum);
    //forEach( )方法对数组中的每一项运行给定函数。这个方法没有返回值
    

    相关文章

      网友评论

          本文标题:2018-11-12

          本文链接:https://www.haomeiwen.com/subject/xqkqfqtx.html