js处理数组的方法对比,包括ES6新增的

js处理数组的方法对比,包括ES6新增的

for()

功能:循环(无返回值,break,contine跳出循环)
是否影响原数据:否
案例:

// 遍历数组
var arr = [1, 2, 3]
for (var i = 0;i<arr.length; i++){
	console.log(arr[i])
}

forEach()

功能:循环(无返回值,不可跳出循环)
是否影响原数据:否
案例:

var datalist=["aaa","abb", "bcc","add", "bcd"]
datalist.forEach((item) => {
	console.log(item)
})

map()

功能:循环(有返回值,不可跳出循环)
是否影响原数据:否
案例:

let numbers = [1,2,3, 4];
let doubled = numbers.map(function(num) {
	return num * 2;
})														
console.log(doubled); // 输出 [2,4,6,8]

some()

功能:检测数组中的元素是否满足指定条件;some()方法会依次执行数组的每个元素:如果有一个元素满足条件,则表达式返回true,剩余的元素不会再执行检测;如果没有满足条件的元素,则返回false。
是否影响原数据:否
案例:

var arr = [3,6,9,12];
if(arr.some(function checknumber(number){return number == 12})){
// 代码块
}

filter()

功能:过滤数组中的元素,并返回一个新数组; filter() 不会对空数组进行检测。
是否影响原数据:否
案例:

let numbers = [1,2,3,4 5, 6, 7, 8];
let result = numbers.filter(function(num) {return num >= 5})
console.og(result) // 输出:[5,6,7,8]
console.og(numbers) //输出 [1,2,3, 4,5,6, 7. 8]

every()

功能:检测数组所有元素是否都符合指定条件;如果数组中检测到有一个元素不满足,则整个表达式返回false ,且剩余的元素不会再进行检测;如果所有元素都满足条件,则返回true;
every() 不会对空数组进行检测;
回调函数参数item(数组元素)、index(序列)、arr(数组本身)。
是否影响原数据:否
案例:

var arr =[13.15,9,12]
if(arr.every(function checknumber(number){returnnumber > 10;})){
//代码块
}

includes()

功能:是否包含某个值;只是判断数组是否含有某值,不用return,不用回调函数,输出一个true或false.
是否影响原数据:否
案例:

['a','b','c'].includes('a'); // true
'5axxwes6'.includes('5axxw')://true

find()

功能:返回数组中第一个满足条件的元素,如果没有则返回undefined.
是否影响原数据:否
案例:

const fruits =['apple', 'banana','orange', 'grape'];
const result = fruits.find(fruit => fruit === 'orange');
console.log(result); // 'orange

findIndex()

功能:返回数组中第一个满足条件的元素的索引,如果没有则返回-1。
是否影响原数据:否
案例:

const myArr=['apple','orange','pear','peach'];
var v=myArr.findlndex(value => value == 'orange');
console.log(v) // 1

reverse()

功能:数组反转
是否影响原数据:是
案例:

var arr1 = [2,1,57,9,45]
arr1.reverse()
console.log(arr1);//[45,9,57,1,2]

sort()

功能:数组排序
是否影响原数据:是
案例:

//升序
var arr1=[2,1.57,9.45]
arr1.sort((num1,num2) => num1-num2);
console.log(arr1);//[1,2,9,45,57]
//降序
var arr1=[2,1.57.9.45]
arr1.sort((num1,num2) => num2-num1);
console.log(arr1);// [57.45,9,2,1]

pop()

功能:删除数组的最后一个元素,返回删除的数组
是否影响原数据:是
案例:

let arr =['apple','orange','banana','pear','peach']
arr.pop(console.log(arr) //['apple','orange','banana','pear']

push()

功能:在数组最后面添加元素,返回更新后数组
是否影响原数据:是
案例:

let arr =['apple','orange' 'banana', pear','peach']
arr.push('Strawberries')
console.log(arr)//['apple', 'orange'banana', 'pear''peach',Strawberries']

shift()

功能:删除数组的第一个元素,返回删除的数组
是否影响原数据:是
案例:

let arr =['apple,'orange','banana','pear','peach']
arr.shift()
console.log(arr)//['orange','banana''pear','peach']

unshift()

功能:在数组最前面添加元素,返回更新数组后的长度
是否影响原数据:是
案例:

let arr = ['apple','orange,'banana','pear','peach']
arr.unshift('Strawberries”)
console.log(arr) //['Strawberries'apple', 'orange','banana', 'pear'"peach']

splice()

功能:通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。
参数:
index-- 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany–必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, … itemX —— 可选。向数组添加新的项目。
是否影响原数据:是
案例:

// 1.数组中添加新元素:
var fruits =["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi");
console.log(fruits)// ['Banana','Orange','Lemon','Kiwi', 'Apple','Mango]
// 2.移除数组的第三个元素,并在数组第三个位置添加新元素:
var fruits = ["Banana","Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi");
console.log(fruits)  // ['Banana''Orange', 'Lemon''Ki腉紥wi', 'Mango’]
// 3.从第三个位置开始删除数组后的两个元素:
var fruits =["Banana","Orange", "Apple","Mango"];
fruits.splice(2,2)
console.log(fruits) // ['Apple','Mango]

slice()

功能:从已有的数组中返回选定的元素(数组单元的截取)
参数1:从何处开始选取(截取数组单元起始位置的索引下标)
参数2:从何处结束选取(截取数组单元结束位置的索引下标)
是否影响原数据:否
案例:

var arrl = ['aa' 'bb','cc''dd' 'ee 'ff];
var data = arr1.slice(2,4)
console.log(data) // ['cc', 'dd']
console.log(arr1) // ['aa', 'bb', 'cc', 'dd']

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值