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