JavaScript中Array对象的常用方法

Array对象

工作很长时间了总是搞不清楚Array几个参数,趁着晚上有空,把一些常用的方法做一个分析记录。

Array 对象用于在变量中存储多个值:

var arr = [11, 22, 33];
arr.map(p1,p2)
  • 返回一个新数组,不会改变原数组,不会对空数组进行检测
  • 参数1:p1是一个回调函数,会对arr进行遍历,并对每一个元素进行运算,并依次返回运算结果
let newArr = arr.map((c) => {
	return c;
});
console.log(newArr);
//[11,22,33]
  • 回调函数的三个参数callback(value,index,arr)
let newArr = arr.map((value,index,arr) => {
	// value,当前遍历的元素值
	// index,可选,当前遍历元素的索引
	// arr,可选,指代原数组arr
});
  • 参数2:p2是一个可选参数,这个参数可以灵活设置,并用在参数1中
let newArr = arr.map((c) => {
	return c * a;
},a = 2);
console.log(newArr);
// [22,44,66]

let newArr = arr.map((c) => {
	return c * a + b;
},a = 2, b = 1);	// 参数二可以设置多个
console.log(newArr);
// [23,45,67]
arr.filter(p1,p2)
  • 返回一个新数组,不会改变原数组,不会对空数组进行检测
  • 参数1:p1是一个回调函数,会对arr进行遍历,并对每一个元素进行判断,并依次返回符合条件的元素
let newArr = arr.filter((c) => {
	return c > 20;
});
console.log(newArr);
//[22,33]
  • 回调函数的三个参数callback(value,index,arr)
let newArr = arr.filter((value,index,arr) => {
	// value,当前遍历的元素值
	// index,可选,当前遍历元素的索引
	// arr,可选,指代原数组arr
});
  • 参数2:p2是一个可选参数,这个参数可以灵活设置,并用在参数1中
let newArr = arr.filter((c) => {
	return c > a;
},a = 20);
console.log(newArr);
// [22,33]

let newArr = arr.filter((c) => {
	return c > a && c < b;
},a = 20, b = 25);	// 参数二可以设置多个
console.log(newArr);
// [23]
arr.concat(p1)
  • 用于连接两个或多个数组。不会改变现有的数组,而是返回被连接数组的一个副本。
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var ss = [[1,2,3,4],{a:1}];
var boolValue = true;
var children = hege.concat(stale,ss);
var children2 = hege.concat(boolValue);
console.log(children);
// ["Cecilie", "Lone", "Emil", "Tobias", "Linus",[1,2,3,4], {a:1}] 
// ["Cecilie", "Lone", true]
// concat函数,可用于多个数组之间的连接,也可以用于往数组后面添加元素
// 如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
arr.every(p1,p2)
  • 用于检测数组所有元素是否 都符合 指定条件;
  • 不会改变原数组,不会对空数组进行检测
  • 如果所有元素都满足条件,则返回 true;如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 参数1:p1是一个回调函数,会对arr进行遍历,并对每一个元素进行判断,并根据函数体返回true or false
let result= arr.every((c) => {
	return c > 10;
});
console.log(result);
//true
  • 回调函数的三个参数callback(value,index,arr)
let result= arr.every((value,index,arr) => {
	// value,当前遍历的元素值
	// index,可选,当前遍历元素的索引
	// arr,可选,指代原数组arr
});
  • 参数2:p2是一个可选参数,这个参数可以灵活设置,并用在参数1中
let result= arr.every((c) => {
	return c > a;
},a = 10);
console.log(result);
// true

let result= arr.every((c) => {
	return c > a && c < b;
},a = 10, b = 40);	// 参数二可以设置多个
console.log(result);
// true
  • 和every()对应的是some() ,some函数,只要数组中有一个元素符合条件,就会返回true
arr.slice(p1,p2)
  • 对数组进行截取,返回一个新的数组,但是不会改变原数组;
  • 也可以对字符串截取,并返回新的字符串,不会改变原字符串
  • 参数1:可选,截取时数组或者字符串的开始脚标(包含参数1元素)
  • 参数2:可选,截取时数组或者字符串的结束角标(不包含参数2元素),如果没有参数2,表示截取到结束位置;
  • 如果参数1参数2是负数,则表示从后往前数的脚标
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var myBest = fruits.slice(-3,-1); // 截取倒数第三个(包含)到倒数第一个(不包含)的两个元素
var myBest = fruits.slice(-3);  // 截取最后三个元素
var str="www.runoob.com!";
document.write(str.slice(4)+"<br>"); // 从第 5 个字符开始截取到末尾
document.write(str.slice(4,10)); // 从第 5 个字符开始截取到第10个字符
arr.reverse()
  • 用于颠倒数组中元素的顺序。
var newArr = arr.reverse();
console.log(newArr);
// [33,22,11]
from(p1,p2,p3)
  • 用于通过拥有 length 属性的对象或可迭代的对象==(字符串或者数组)==来返回一个数组。

如果对象是数组返回 true,否则返回 false。

Array.from('foo');
// [ "f", "o", "o" ]

const set = new Set(['foo', 'bar', 'baz', 'foo']);
Array.from(set);
// [ "foo", "bar", "baz" ]

  • 参数1:想要转换成数组的对象(可以是字符串或者数组)。
  • 参数2:可选,如果指定了该参数,新数组中的每个元素会执行该回调函数。
  • 参数3:可选,执行回调函数时的 this 对象。

Array对象的方法还有很多,一一列举颇为浪费时间,以上是我在工作中常会用到的,其他的方法以后或许会再补充。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值