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']