数组的方法总结

常用方法

  1. toString():把数组转换成字符串(逗号分隔)
    示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.toString());		//Banana,Orange,Apple,Mango
  1. join():将所有数组元素结合为一个字符串,可以规定分隔符,默认用逗号隔开;join(“”) 表示将所有元素之间的间隔去掉;
    join(“|”) 表示将所有的元素用 | 隔开;
    示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.join("*"));		//Banana*Orange*Apple*Mango
  1. pop():删除数组中的最后一个元素并返回这个元素
    示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.pop());	//Mango
  1. push():向数组的末尾添加一个新元素,返回新数组的长度
    示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.push("Kiwi"));	//5
console.log(fruits);	//["Banana", "Orange", "Apple", "Mango", "Kiwi"]
  1. shift():删除数组中的第一个元素并返回这个元素
    示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.shift());	//Banana
console.log(fruits);	//["Orange", "Apple", "Mango"]
  1. unshift():向数组的开头添加新元素,返回新数组的长度
    示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.unshift("Lemon"));	//5
console.log(fruits);	//["Lemon", "Banana", "Orange", "Apple", "Mango"]
  1. 利用索引号修改元素
    示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[0] = "Kiwi";
//把数组中下标为 0 的元素换成 “Kiwi”
console.log(fruits);	//["Kiwi", "Orange", "Apple", "Mango"]
  1. 利用数组的 length 属性在末尾添加新元素
    示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[fruit.length] = "Lemon";
//向数组末尾添加一个新元素 “Lemon”
console.log(frutis);	//["Banana", "Orange", "Apple", "Mango", "Lemon"]
  1. splice():向数组指定位置添加新元素
    第一个参数定义要添加的元素的位置;
    第二个参数(0)定义删除多少元素;
    其余参数定义要添加的新元素(返回被删除的元素)
    示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");
//在数组下标为 2 的位置添加两个新元素:"Lemon", "Kiwi"
console.log(fruits);	//["Banana", "Orange", "Lemon", "Kiwi", "Apple", "Mango"]
  1. splice():删除数组中指定位置的元素
    第一个参数定义要删除的元素位置
    第二个参数定义要删除的元素数量
    示例:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(1, 2); 
//从 fruits 中下标为 1 的元素开始,往后删除 2 个元素,即删除 "Orange", "Apple"
console.log(fruits);	//["Banana", "Mango"]
  1. concat():合并现有数组,创建并返回一个新数组
    示例一:连接2个数组
var a = [1, 2, 3];
var b = [4, 5];
var c = a.concat(b);
//合并 a,b 数组中的元素,组成新数组 C
console.log(c);		//[1, 2, 3, 4, 5]

示例二:连接3个数组

var arr1 = [1, 22, 333]
var arr2 = ["a", "b"]
var arr3 = ["Ming"]
var arr = arr1.concat(arr2, arr3);
//把 arr1, arr2 和 arr3 连接在一起,组成一个新数组 arr
console.log(arr);	//[1, 22, 333, "a", "b", "Ming"]
  1. slice():把数组中的指定元素取出来,组成一个新数组,可以传 2 个参数;
    第一个参数表示从这个下标开始截取,如果第二个参数不写的话,就取到最后;
    示例:
var arr = [1, 2, 3, 4, 5];
var cut = arr.slice(2);
//把数组 arr 里面的 3, 4, 5 截取出来,组成新数组 cut
console.log(cut);	//[3, 4, 5]

第二个参数为结束参数,表示截取到它前面一个元素为止;
示例:

var arr = [1, 2, 3, 4, 5];
var cut = arr.slice(1,4);
//把数组 arr 里面的 2, 3, 4 截取出来,组成新数组 cut
console.log(cut);	//[2, 3, 4]

(注意:如果第一个参数比第二个参数大,则返回一个空数组;如果第一个参数是负数,就从后往前数。)

  1. sort():对数组的元素进行排序,比较的是元素对应的ASCⅡ码值
    示例:
 var arr = [55, "cc", 3, "whe", "ger", 101];
 console.log(arr.sort());	//[101, 3, 55, "cc", "ger", "whe"]

如果要按照其他标准排序,就需要借助比较函数;
示例一(按大小顺序排序):

var arr = [43, 5, 122, 32, 16];
function sortNumber(a, b){
	//从小到大排序
	return a - b;
	//从大到小排序
	//return b - a;  =>  [122, 43, 32, 16, 5]
}
console.log(arr.sort(sortNumber));	//[5, 16, 32, 43, 122]

示例二(随机排序):

var arr = [23, 8, 67, 199, 5];
arr.sort(function(){
	return Math.random() - 0.5;
	//得到一个随机的正负数来控制顺序
});
console.log(arr);	//[ 67, 5, 23, 8, 199 ]
  1. reverse():将原数组倒序排列,返回新的排列后的数组
    示例:
var arr = [1, 2, 3, 4]
console.log(arr.reverse());		//[4, 3, 2, 1]

ES5新增方法

  1. Array.isArray():判断是否是数组,返回布尔值
var arr = [1, 2, 3];
console.log(Array.isArray(arr));	//true
var arr1 = 1234;
console.log(Array.isArray(arr1));	//false
  1. forEach():遍历数组,本质上是一个 for循环,接收两个参数:
    第一个参数是回调函数,function(value, index, arr){};
    * value 指当前循环的值;
    * index 指当前循环的索引;
    * arr 指当前数组本身;
    第二个参数控制当前 this 指向谁;
var arr = [1, 2, 3];
arr.forEach(function(value, index, arr){
	console.log(value, index, arr);
	//1 0 [1, 2, 3]
	//2 1 [1, 2, 3]
	//3 2 [1, 2, 3]
}, document);
  1. indexOf():跟字符串查找一样,查找指定元素是否存在;如果存在,返回下标,如果不存在返回-1
var arr = [1, 2, 3, 4];
console.log(arr.indexOf(2));	//1

还可以传第二个参数,表示从某个下标位置开始向后检测元素在数组中是否存在;如果存在返回下标,不存在返回-1

  1. lastIndexOf():跟 indexOf() 一样,只不过它是从后往前查找;如果存在返回下标,不存在返回-1
var arr = [1, 2, 3, 4];
console.log(arr.lastIndexOf(2));	//1

也可以传第二个参数,表示从某个下标位置开始向前检测元素在数组中是否存在;如果存在返回下标,不存在返回-1

  1. some():判断数组内是否有指定元素,如果只要有一个则返回true,如果一个都没有则返回false
var arr = [1, 2, 3];
var result = arr.some(function(value, index, arr){
	return value == 2;	
});
console.log(result);	//true
  1. every() :判断数组内是否都有指定元素,如果全部都有则返回true,
    如果有一个没有指定元素则返回false
var arr = [1, 2, 3];
var result = arr.every(function(value, index, arr){
	return value == 2;	
});
console.log(result);	//false
  1. filter():过滤不符合条件的元素,如果回调函数返回true则保留,返回false则过滤掉

  2. map():映射,返回一个被操作后的新数组,不会改变原数组;一般配合return使用,如果没有return就跟forEach一样

  3. reduce():归并,回调函数接收4个参数,类似递归,可以求和之类的操作;
    - 第一个参数为:之前计算过的值 prev
    - 第二参数为:之前计算过的值的下一个值 next
    - 第三个参数:当前索引 index
    - 第四个参数为:当前数组对象 arr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值