数组API方法

  1. splice() 用于向数组中添加 / 删除 元素 ===> 改变原数组
/**
*	splice(startIndex, many, item1, ..., itemX);  从 startIndex 位置 取出长度为 many 的数组,并在此添加 item1, ..., itemX 的新元素
*/
let a = [1, 5, 9, 7, 4, 3];
let b = a.splice(2, 0);  // 返回删除的元素(如果有的话, 没有则返回[]) a: [1, 5, 9, 7, 4, 3]; b: []
let c = a.splice(2, 2);  // 返回删除的元素(如果有的话, 没有则返回[]) a: [1, 5, 4, 3]; b: []; c: [9, 7]
let d = a.splice(2, 2, 6, 7, 8);  // 返回删除的元素, 并原数组添加从第三个参数开始的元素 a: [1, 5, 6, 7, 8]; b: []; c: [9, 7]; d: [4, 3]

  1. slice() 用于选中数组元素,返回新数组 ===> 不改变原数组
/**
*	slice(start,end);  从 start 位置开始到 end 位置结束(不包括 end)
*/
let a = [1, 4, 7, 8, 9, 6];
let b = a.slice(3, 5);	// a: [1, 4, 7, 8, 9, 6]; b: [8, 9]
  1. push() 向数组末尾添加元素,返回新数组长度 ===> 改变原数组
let a = [1, 4, 7, 8, 9, 6];
let b = a.slice(3, 5);	// a: [1, 4, 7, 8, 9, 6, 3, 5]; b: 8
  1. pop() 删除数组最后一个元素,返回删除的元素(无参数) ===> 改变原数组
let a = [1, 4, 7, 8, 9, 6];
let b = a.pop();	// a: [1, 4, 7, 8, 9]; b: 6
  1. shift() 移除数组中第一个元素,返回移除的元素(无参数) ===> 改变原数组
let a = [1, 4, 7, 8, 9, 6];
let b = a.shift();	// a: [4, 7, 8, 9, 6]; b: 1
  1. unshift() 将元素添加至数组中第一位,返回新数组的长度 ===> 改变原数组
let a = [1, 4, 7, 8, 9, 6];
let b = a.unshift(5, 6);	// a: [5, 6, 1, 4, 7, 8, 9, 6]; b: 8
  1. indexOf() 在数组中查找某个元素,并返回元素所在的位置(无则为 -1) ===> 不改变原数组
/**
* indexOf(item, startIndex); 	item: 查找的元素; startIndex: 开始查找的位置
*/
let a = [1, 4, 7, 8, 9, 6];
let b = a.indexOf(8, 2);	// a: [1, 4, 7, 8, 9, 6]; b: 3
let b = a.indexOf(8, 4);	// a: [1, 4, 7, 8, 9, 6]; b: -1
  1. includes() 检查数组是否包含指定元素,返回 true / false ===> 不改变原数组
/**
* includes(item, startIndex); 	item: 查找的元素; startIndex: 开始查找的位置
*/
let a = [1, 4, 7, 8, 9, 6];
let b = a.includes(8, 2);	// a: [1, 4, 7, 8, 9, 6]; b: true
let b = a.includes(8, 4);	// a: [1, 4, 7, 8, 9, 6]; b: false
  1. filter(Fun,value) 根据 Fun() 方法创建一个新的数组 ===> 不改变原数组
/**
* filter(function(current, index, arr), value); 	item: 当前元素; index: 当前元素的位置; arr: 当前元素所在的数组对象; value: 传递给函数 this 值的值(且函数Fun()不可为箭头函数)
*/
let a = [1, 4, 7, 8, 9, 6];
let param = [9, 9, 9, 9];
let b = a.filter(function(cur, index, arr) {
	return cur > 2 && index > 1
});	
// a: [1, 4, 7, 8, 9, 6]; b: [7, 8, 9, 6]
let d = a.filter(function(cur, index, arr) {
	return cur > 2 && index > 1 && this.includes(cur)
}, param);
// a: [1, 4, 7, 8, 9, 6]; d: [9]

  1. find(Fun,value) 检查数组中的每一项元素是否都满足 Fun() 返回Boolean值 ===> 不改变原数组
/**
* find(function(current, index, arr), value); 	item: 当前元素; index: 当前元素的位置; arr: 当前元素所在的数组对象; value: 传递给函数 this 值的值(且函数Fun()不可为箭头函数)
*/
let a = [1, 4, 7, 8, 9, 6];
let param = [1, 1, 1, 1];
let b = a.find(function(cur, index, arr) {
	return cur > 2
});	
// a: [1, 4, 7, 8, 9, 6]; b: 4
let d = a.find(function(cur, index, arr) {
	return cur > 3 || this.includes(cur)
}, param);
// a: [1, 4, 7, 8, 9, 6]; d: 1

  1. every(Fun,value) 检查数组中的每一项元素是否都满足 Fun() 返回Boolean值 ===> 不改变原数组
/**
* every(function(current, index, arr), value); 	item: 当前元素; index: 当前元素的位置; arr: 当前元素所在的数组对象; value: 传递给函数 this 值的值(且函数Fun()不可为箭头函数)
*/
let a = [1, 4, 7, 8, 9, 6];
let param = [1, 1, 1, 1];
let b = a.every(function(cur, index, arr) {
	return cur > 2
});	
// a: [1, 4, 7, 8, 9, 6]; b: false
let d = a.every(function(cur, index, arr) {
	return cur > 3 || this.includes(cur)
}, param);
// a: [1, 4, 7, 8, 9, 6]; d: true

  1. some(Fun,value) 检查数组中的是否有元素满足 Fun() 返回Boolean值 ===> 不改变原数组
/**
* some(function(current, index, arr), value); 	item: 当前元素; index: 当前元素的位置; arr: 当前元素所在的数组对象; value: 传递给函数 this 值的值(且函数Fun()不可为箭头函数)
*/
let a = [1, 4, 7, 8, 9, 6];
let param = [2];
let b = a.some(function(cur, index, arr) {
	return cur > 2
});	
// a: [1, 4, 7, 8, 9, 6]; b: true
let d = a.some(function(cur, index, arr) {
	return cur > 0 && this.includes(cur)
}, param);
// a: [1, 4, 7, 8, 9, 6]; d: false

  1. map(Fun,value) 为原数组中每个数组元素调用函数的结果创建新数组 ===> 不改变原数组
/**
* map(function(current, index, arr), value); 	item: 当前元素; index: 当前元素的位置; arr: 当前元素所在的数组对象; value: 传递给函数 this 值的值(且函数Fun()不可为箭头函数)
*/
let a = [1, 4, 7, 8, 9, 6];
let b = a.map(function(cur, index, arr) {
	return cur * cur
});	
// a: [1, 4, 7, 8, 9, 6]; b: [1, 16, 49, 64, 81, 36]
  1. forEach(Fun,value) 为原数组中每个数组元素调用函数,返回值 undefined ===> 不改变原数组(需通过Fun赋值达到改变原数组)
/**
* forEach(function(current, index, arr), value); 	item: 当前元素; index: 当前元素的位置; arr: 当前元素所在的数组对象; value: 传递给函数 this 值的值(且函数Fun()不可为箭头函数)
*/
let a = [1, 4, 7, 8, 9, 6];
let b = a.forEach(function(cur, index, arr) {
	return cur * 2
});	
// a: [1, 4, 7, 8, 9, 6]; b: undefined
let c = a.forEach(function(cur, index, arr) {
	arr[index] = cur * 2
});	
// a: [2, 8, 14, 16, 18, 12]; b: undefined; c: undefined
  1. sort(compareFunction) 对数组的元素进行排序 对数字排序需用到比较函数,根据比较函数返回的正 / 负 / 零进行排序 ===> 改变原数组
let a = [1, 4, 17, 28, 39];
let b = a.sort();	
// a: [1, 17, 28, 39, 4]; b: [1, 17, 28, 39, 4]
let c = a.sort((a,b)=>{ return a - b });
// a: [1, 4, 17, 28, 39]; b: [1, 4, 17, 28, 39]; c: [1, 4, 17, 28, 39]
	
let d = ["apple", "banana", "handle", "get", "alive"];	
let e = d.sort();
// d: ["alive", "apple", "banana", "get", "handle"]; e: ["alive", "apple", "banana", "get", "handle"]; 
  1. reduce(Fun, initialValue) 为数组的每个值(从左到右)执行提供的函数,函数的返回值存储在累加器中(结果/总计) 常用于对数组中的数字之和 ===> 不改变原数组
/**
* reduce(function(total, current, index, arr), initialValue); 	total: initialValue 或者 函数先前返回的值; item: 当前元素; index: 当前元素的位置; arr: 当前元素所在的数组对象; value: 作为初始值传递给函数
*/
let a = [1, 4, 7, 8, 9, 6];
let b = a.reduce(function(total, cur, index, arr) {
	return total += cur
});	
// a: [1, 4, 7, 8, 9, 6]; b: 35
let b = a.reduce(function(total, cur, index, arr) {
	return total += cur
}, 12);
// a: [1, 4, 7, 8, 9, 6]; b: 35; c: 47
  1. reverse() 将数组反转(无参数) ===> 改变原数组
let a = [1, 4, 7, 8, 9, 6];
let b = a.reverse();	
// a: [6, 9, 8, 7, 4, 1]; b: [6, 9, 8, 7, 4, 1]
  1. concat() 将两个 / 多个 数组拼接成一个新数组 ===> 不改变原数组
let a = [1, 4, 7, 8, 9, 6];
let b = [1, 4];
let c = [1, 6];
let d = a.reverse(b, c);	
// a: [1, 4, 7, 8, 9, 6]; b: [1, 4]; c: [1, 6]; d: [1, 4, 7, 8, 9, 6, 1, 4, 1, 6]
  1. join() 将数组元素由指定字符拼接成一个新字符串(默认拼接字符为 ,) ===> 不改变原数组
let a = [1, 4, 7, 8, 9, 6];
let b = a.join();
let c = a.join("-");
// a: [1, 4, 7, 8, 9, 6]; b: "1,4,7,8,9,6"; c: "1-4-7-8-9-6"
  1. toString() 将数组元素由逗号拼接成一个新字符串(无参数) ===> 不改变原数组
let a = [1, 4, 7, 8, 9, 6];
let b = a.toString();
// a: [1, 4, 7, 8, 9, 6]; b: "1,4,7,8,9,6";

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值