欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js中数组常用方法总结push、pop、shift、unshift、sort、concat、join、splice、slice、reverse、indexOf、lastIndexOf、includes

程序员文章站 2022-03-09 09:29:00
...

在开发项目中,使用到数组方法最多的大概有 push、pop、shift、unshift、sort、concat、join、splice、slice、reverse、indexOf、lastIndexOf、includes、isArray、toString、some、every、filter、reduce、map、forEach…等。下面整理了一下,方法的使用说明;
push()
向指定数组的尾部添加一个新的元素,会改变原数组

var arr  = [2, 3, 4];
arr.push(5);
console.log(arr) // [2, 3, 4, 5]

pop()
删除指定数组最后一个元素,会改变原数组;

var arr  = [2, 3, 4];
arr.pop();
console.log(arr) // [2, 3]

shift
删除指定数组第一个元素,会改变原数组;

var arr  = [2, 3, 4];
arr.shift();
console.log(arr) // [3, 4]

unshift
向指定数组头部添加一个元素,会改变原数组;

var arr  = [2, 3, 4];
arr.unshift(1);
console.log(arr) // [1, 2, 3, 4]

splice
修改数组指定下标的值 该函数三个参数 splice(index, length, value) ,会改变原数组
index: 选择开始下标,从当前下标开始;支持负数,从后开始计算;
length: 选择要删除的个数,0 代表不删除
value: 要插入的新值

var arr  = [2, 3, 4];
var b = arr.splice(1,1,5)
console.log(arr) // [2, 5, 4]

slice
slice(start, end) 方法可从已有的数组中返回选定的元素;不会改变原数组
start: 必需。规定从何处开始选取;
end: 可选。如果不填,默认到最后;

var arr = [2, 3, 4];
var b = arr.slice(0,1);
console.log(arr) // [2, 3, 4]
console.log(b) // [2]

join
join(params) 方法用于把数组中的所有元素以指定分隔符进行分隔的。不会改变原数组;
params 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

var arr = [1,2,3];
var b = arr.join('-');
console.log(arr) //  [1, 2, 3]
console.log(b) //  "1-2-3"

concat
concat() 方法用于连接两个或多个数组。不会改变原数组;
arr.concat(arr1, arr2, …arr4)

var arr = [1,2],
 	arr1 = [3,4];
var newArr = arr.concat(arr1  );
console.log(newArr) // [1, 2, 3, 4]
console.log(arr, arr1) //  [1, 2]  [3, 4]

reverse
reverse 方法颠倒数组中元素的位置顺序,并返回该数组的引用。类似于本末倒置;会改变元素组

var arr = [1, 2, 3, 4];
var arr1 = ['a', 'b', 'c', 'a'];
arr.reverse();
arr1.reverse();
console.log(arr, arr1); // [4, 3, 2, 1]  ["a", "c", "b", "a"]

sort
sort(sortby) 方法用于对数组的元素进行排序,会改变原数组;
参数:sortby 可选。规定排序顺序。必须是函数。

// 例子一:不传参数,默认从小到大排序;
var arr = [5,1,2,3,4];
arr.sort()
// arr [1, 2, 3, 4, 5];
// 例子二:第一个参数大于 第二个参数,则返回-1;否则返回 1;此时是倒叙排序;
var arr = [5,4,1,6,99,111]
arr.sort((a,b)=>{
    if(a > b){
        return -1;
    } else {
        return 1;
    }
})
//arr  [111, 99, 6, 5, 4, 1]
// 例子三:第一个参数大于 第二个参数,则返回1;否则返回 -1;此时是正叙排序;
arr.sort((a,b)=>{
    if(a > b){
        return 1;
    } else {
        return -1;
    }
})
// arr [1, 4, 5, 6, 99, 111]
// 例子四:可以指定数组里面对象的某一个属性排序
var obj = [{name: '1', age:99},{name: '0', age: 10},{name:'11', age: 123}];
obj.sort(function(a, b){
    if(a.age > b.age){
        return 1
    } else { 
    	return -1
   	}
})
// 排序完的数组
[{name: "0", age: 10},
 {name: "1", age: 99},
 {name: "11", age: 123}]

indexOf
indexOf(searchvalue,fromindex) 方法可返回某个指定的字符串值在字符串中首次出现的位置,此方法不会改变原数组;
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。

// 例子一:只有一个参数
var arr = [1,2,1,4,5];
var indexPos = arr.indexOf(1); // 检索1出现的位置,多个之后返回第一次检索的下标
// 打印 0

// 例子一:两个个参数,从下标为 1的位置向后检索
var arr = [1,2,1,4,5];
var indexPos = arr.indexOf(1, 1); 标
// 打印 2

lastIndexOf
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索,此方法不会改变原数组;
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。

// 例子一:只有一个参数,从数组尾部向前搜索
var arr = [1,2,1,4,5];
arr.lastIndexOf(1);
// 打印 2
// 例子一:两个个参数,从下标为 1的位置向前检索
var arr = [1,2,1,4,5];
arr.lastIndexOf(1,1);
// 打印 0

includes - es6语法
includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
arr.includes(searchElement, fromIndex) 不会改变原数组
searchElement 必须。需要查找的元素值。
fromIndex 可选。从该索引处开始查找 searchElement,包含fromIndex。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。

// 例子一:只有一个参数
var arr = [1, 2, 3, 4];
arr.includes(1); // 数组中包含 1 ,返回true
// 打印为 true,
// 例子二:两个参数
var arr = [1, 2, 3, 4];
arr.includes(1, 1); // 从数组第1位向后查找,不包含 1 ,返回false
// 打印为 false

isArray
判断指定数据是否为数组,如果是数组,返回 true,否则返回 false;

Array.isArray([1, 2, 3]);  
// true
Array.isArray({foo: 123}); 
// false
Array.isArray("foobar");   
// false
Array.isArray(undefined);  
// false

toString
数组转换为字符串;

var arr = [1, 2, 3];
arr.toString(2)
// 1,2,3

数组循环函数本章不过多介绍 some、every、filter、reduce、map、forEach…具体详解请看下一篇文章。希望能帮得到大家,共同努力。

相关标签: JS JavaScript