2018-11-12

2018-11-12  本文已影响0人  kathyever

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( )方法对数组中的每一项运行给定函数。这个方法没有返回值
上一篇下一篇

猜你喜欢

热点阅读