数组方法-ES5(复习笔记)

数组方法ES5

------ES5-------

  1. push() --从数组末尾添加参数,返回修改后数组的长度;(可传多个参数)
    栈方法(后进先出)
var animals = ['cat','dog','pig'];
var all = animals.push('bird');  //末尾推入一项
console.log(all);  // 4
  1. pop() --从数组末尾删除参数,返回值为删除元素(只删除一个);
    栈方法(后进先出)
var animals = ['cat','dog','pig','bird'];
var all = animals.pop(); //取得最后一项  
console.log(all);  // bird
  1. unshift() --从数组起始添加参数,返回修改后数组的长度;(可传多个参数)
    队列方法(先进先出)
var animals = ['cat','dog','pig'];
var all = animals.unshift('bird');  //起始推入一项
console.log(all);  // 4
  1. shift() --从数组起始删除参数,返回值为删除元素(只删除一个)
    队列方法(先进先出)
var animals = ['cat','dog','pig','bird'];
var all = animals.unshift();  //取得起始一项
console.log(all);  // cat
  1. splice()
    删除:删除任意数量的项,指定两个参数,要删除的第一项的位置和要删除得项数;
    var animals = ['cat','dog','pig','bird'];
    var all = animals.splice(0,2);  //删除前两项
    console.log(all);  // ["cat"]
    
    插入:向指定位置添加任意数量的项,需提供三个参数:起始位置、0(要删除的项数)和要插入的项;
    var animals = ['cat','dog','pig','bird'];
    var all = animals.splice(2,0,'a','b','c');  //从第二项后插入
    console.log(all);  // [] 
    console.log(animals);  // ["cat", "dog", "a", "b", "c", "pig", "bird"]
    
    替换:向指定位置添加任意数量的项,且同时删除任意数量的项,需提供三个参数:起始位置、要删除的项数和要插入的项;
    var animals = ['cat','dog','pig','bird'];
    var all = animals.splice(1,3,'a','b','c');  //从第一项后插入,删除后三项
    console.log(all);  // ["dog", "pig", "bird"] 返回删除得项
    console.log(animals);  // ["cat", "a", "b", "c"]
    
  2. slice(start,end)–切去起始位置到结束位置的数组(不包含end),返回值为切出的数组;
var animals = ['cat','dog','pig','bird','tiger'];
var frag = animals.slice(1,2);  
var frag2 = animals.slice(1);
console.log(frag);	//["dog"]
console.log(frag2);  // ["dog", "pig", "bird",'tiger']
//如果slice()方法的参数中有一个负数,则用数组长度加上该数来确定相应的位
//置。例如,在一个包含5 项的数组上调用slice(-2,-1)与调用slice(3,4)得到的
//结果相同。如果结束位置小于起始位置,则返回空数组。
var frag3 = animals.slice(-3); //等同于 animals.slice(2)
var frag4 = animals.slice(-3,-1); //等同于 animals.slice(2,4)
  1. concat()–连接两个数组返回新数组
var colors = ["red", "green", "blue"];
var colors2 = colors.concat("yellow", ["black", "brown"]);
alert(colors); //red,green,blue
alert(colors2); //red,green,blue,yellow,black,brown

Javascript高级程序设计(第3版)

  1. sort()–按升序排列数组项,即最小的值位于最前面,最大的值排在最后面(默认是按照最左边的数字进行排序,不是按照数字大小排序的),返回值是排好的数组;
var values = [0, 1, 5, 10, 15];
values.sort();
console.log(values); //0,1,10,15,5
values.sort(function(a,b){
	return a - b;   //由小到大排序,b-a由大到小排序
})
  1. reverse()–反转数组项的顺序(默认是按照最左边的数字进行排序,不是按照数字大小排序的),返回值是反转后的数组;
var values = [1, 22, 3, 43, 5];
values.reverse();
console.log(values); //5,43,3,22,1
  1. indexOf()–查找某个元素的索引值,若有重复的,则返回第一个查到的索引值若不存在,则返回-1
var numbers = [1,2,3,4,5,4,3,2,1];
alert(numbers.indexOf(4)); //3
  1. lastIndexOf()–查找某个元素的索引值(从后往前),若有重复的,则返回第一个查到的索引值若不存在,则返回-1;
var numbers = [1,2,3,4,5,4,3,2,1];
alert(numbers.lastIndexOf(4)); //5
  1. forEach(callback)–遍历数组。这个方法没有返回值;
var numbers = [1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item,index,array){
	console.log(`value:${value}  index:${index}  array:${array}`)
})
  1. every(callback)–根据条件判断,全部满足,则返回true,否则false;
var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult = numbers.every((v,i) => v < 3);
alert(everyResult); //false
  1. filter(callback)–对数组进行过滤,返回满足条件的数组;
var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult = numbers.filter((item, index, array) => item >2);
alert(filterResult); //[3,4,5,4,3]
  1. map(callback)–映射数组(遍历数组),有return 返回一个新数组;
var numbers = [1,2,3,4,5,4,3,2,1];
var mapResult = numbers.map((item, index, array) => item * 2);
alert(mapResult); //[2,4,6,8,10,8,6,4,2]
  1. some(callback)–根据条件判断,有一个满足条件,则返回true;
var numbers = [1,2,3,4,5,4,3,2,1];
var someResult = numbers.map((item, index, array) => item > 2);
alert(someResult); //true
  1. reduce()–方法接收一个函数 callback 作为累加器(accumulator),数组中的每个值(从左到右)开始合并,最终为一个值。
    接收四个参数:
    preValue: 上一次调用回调返回的值,或者是提供的初始值(initialValue)前一个值
    curValue: 数组中当前被处理的数组项(当前值)
    index: 当前数组项在数组中的索引值(项的索引)
    array: 调用 reduce()方法的数组
说这么多还是看代码就清楚了
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
	return prev + cur;
});
alert(sum); //15

第一次执行回调函数,prev 是1,cur 是2。第二次,prev 是3(1 加2 的结果),cur 是3(数组 的第三项)。这个过程会持续到把数组中的每一项都访问一遍,最后返回结果。
18. reduceRight()–功能和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加;

var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
	return prev + cur;
});
alert(sum); //15

第一次执行回调函数,prev 是5,cur 是4。当然,最终结果相同,因为执行的都 是简单相加的操作。 使用reduce()还是reduceRight(),主要取决于要从哪头开始遍历数组。除此之外,它们完全 相同。

-------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值