7种Js Array数组ES5/ES6常用方法
web前端开发
共 5358字,需浏览 11分钟
·
2020-12-31 19:49
1、栈方法(先进后出)
var a=[1,2,3]
a.push(9); //返回数组的长度 4,改变了原数组
console.log(a) //[1,2,3,9]
var a=[1,2,3,4];
a.pop() // 返回删除值 4,改变了原数组
console.log(a) // [1,2,3]
2、队列方法(先进先出)
var a=[1,2,3];
a.unshift(4); //返回数组的长度 4,改变了原数组
console.log(a); //[4,1,2,3]
var a=[1,2,3,4];
a.shift() //返回被删除的值 1,改变了原数组
console.log(a) //[2,3,4]
3、操作方法
var a=[1,2,3,4,5];
a.slice(2,4) //返回[3,4],原数组不变
a.slice(0) //返回[1,2,3,4,5],原数组不变
a.slice(3) //返回[4,5] ,原数组不变
console.log(a) // [1,2,3,4,5]
var a=[1,2,3,4,5];
a.splice(1,2,"我是","插入的值") //返回删除的值 2,3,改变了原数组
console.log(a) // [1,"我是","插入的值",4,5]
var a=[1,2,3,4];
var b=[5,6,7,8];
var c=a.concat(b); //返回[1,2,3,4,5,6,7,8],原数组不变
console.log(c); // [1,2,3,4,5,6,7,8]
4、排序方法
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1] ,改变了原数组
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
var a=[1,2,3,12,13];
a.sort() //返回 [1,12,13,2,3]
//如果按照正常逻辑排序 :
a.sort(function(a,b){
return a-b;
}) //[1,2,3,12,13]
5、拼接方法
var a=[1,2,"字符串",false,undefined,null];
b=a.join("++"); // 返回 1++2++字符串++false++++ ;原数组不变
console.log(b); //undefined null 自动过滤掉了
6、迭代(查找、遍历)方法
var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple"); //返回 0,原数组不变
console.log(a); //0
var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");//返回2,原数组不变
console.log(a);//2
var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction); //返回 25,原数组不变
function myFunction(value, index, array) {
return value > 18;
}
var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);//返回3,原数组不变
function myFunction(value, index, array) {
return value > 18;
}
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var everyResult = numbers.every(function(item, index, array){
return (item > 3);
})
console.log(everyResult); //false
var someResult = numbers.some(function(item, index, array) {
return (item > 3);
})
console.log(someResult); //true
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var filterResult = numbers.filter(function(item, index, array) {
return (item > 3);
})
console.log(filterResult); //[4, 5, 4],原数组不变
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var mapResult = numbers.map(function(item, index, array) {
return item * 2;
})
console.log(mapResult); //[2, 4, 6, 8, 10, 8, 6, 4, 2]
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var copy = [];
var Result = numbers.forEach(function(item, index, array) {
copy.push(item - 1) //执行某些操作
})
console.log(numbers); //[1, 2, 3, 4, 5, 4, 3, 2, 1] 原数组不变
console.log(copy); //[0, 1, 2, 3, 4, 3, 2, 1, 0]
console.log(Result); //undefined 无返回值
var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
var init=10;
var Result = numbers.reduce(function(prev, item, index, array) {
return prev + item
},init)
console.log(numbers); //[1, 2, 3, 4, 5, 4, 3, 2, 1] 原数组不变
console.log(Result); //返回 35
7、转换方法(Array、Boolean、Date、Number等对象通用方法)详见区别:https://www.cnblogs.com/niulina/p/5699031.html
var a = [1, 2, 3, 4, 5];
var b = a.toString();//返回 1,2,3,4,5 ;原数组不变
console.log(a); //[1,2,3,4,5]
console.log(b); //1,2,3,4,5
var a = [1, 2, 3, 4, 5];
var b = a.toLocaleString();//返回 1,2,3,4,5 ;原数组不变
console.log(a); //[1,2,3,4,5]
console.log(b); //1,2,3,4,5
评论