作为一名小白,又是日常敲代码的一天,此刻讨论一下关于js中较常使用的数组方法。
关于数组的方法有很多,我现在列举一下常用的方法,更多的方法需要大家一起总结归纳。
1.Array.push(参数1,参数2. . . )
有参数,作用是在原数组后添加元素,会改变原数组,返回值为新数组的长度。
var arr = [520, 1, 3]; var newArr = arr.push(1, 4); alert(newArr); // 5 alert(arr); // [520, 1, 3, 1, 4]
2.Array.pop()
无参数,作用是将原数组最后一个元素删除,会改变原数组,返回值为删除元素的值。
var arr = [520, 1, 3, 1, 4, "fake"]; var newArr = arr.pop(); alert(newArr); // "fake" alert(arr); // [520, 1, 3, 1, 4]
3.Array.shift()
无参数,作用是删除原数组的首个元素,会改变原数组,返回值为删除元素的值。
var arr = ["fake", 520, 1, 3, 1, 4]; var newArr = arr.shift(); alert(newArr); // "fake" alert(arr); // [520, 1, 3, 1, 4]
4.Array.unshift(参数1,参数2. . . )
有参数,作用是在原数组元素之前添加元素,会改变原数组,返回值为新数组的长度。
var arr = [1, 3, 1, 4]; var newArr = arr.unshift(520); alert(newArr); // 5 alert(arr); // [520, 1, 3, 1, 4]
5.Array.concat(参数)
有参数(可以为数组或数据,如果是数组,会将该数组元素拆分出来进行合并 ),作用是复制原数组生成另一个数组,然后与参数拼接成一个新数组,返回值为新数组,不改变原数组。
var arr1 = [520]; var arr2 = [1, 3, 1, 4]; var newArr1 = arr1.concat(arr2); var newArr2 = arr1.concat(3, 3, 4, 4); alert(newArr1); // [520, 1, 3, 1, 4] alert(newArr2); // [520, 3, 3, 4, 4] alert(arr1); // [520]
6.Array.slice(start,end)
start ,end分别为起始结束位置,对应原数组元素的下标(终止位置的元素选不到,可以看似为 [start , end )),该方法的作用是从原数组选取一段元素构成新数组,返回值为新数组,不改变原数组。
var arr = ["tony", 520, 1, 3, 1, 4, "fake"]; var newArr = arr.slice(1, 6); alert(newArr); // [520, 1, 3, 1, 4] alert(arr); // ["tony", 520, 1, 3, 1, 4, "fake"]
7.Array.splice(start, length, 空/参数)
start为截取的初始位置,length为截取长度,参数可以为空,若有参数,则放在start的位置,该方法可用于数组元素的添加、删除或者修改(先删除,后添加 ),返回值为截取元素组成的数组,原数组改变。
var arr = [520, 1, 3, 1, 4]; var newArr1 = arr.splice(1, 0, "tom"); var newArr2 = arr.splice(2, 2); var newArr3 = arr.splice(1, 3, "forever"); alert(newArr1); // [] alert(newArr2); // [1, 3] alert(newArr3); // ["tom", 1, 4] alert(arr) // [520, "forever"]
8.Array.join(空/连接符)
该方法是将数组元素以指定连接符拼接成一个新字符串,如果为空,则按默认" , "进行分割,返回值为新字符串,不改变原数组。
var arr = [520, 1, 3, 1, 4]; var newArr1 = arr.join("-"); var newArr2 = arr.join(); alert(newArr1); // "520-1-3-1-4" alert(newArr2); // "520,1,3,1,4" alert(arr); // [520, 1, 3, 1, 4]
9.Array.reverse()
无参数,作用是将原数组元素逆序,返回值为逆序过后的新数组,原数组改变。
var arr = [520, 1, 3, 1, 4]; var newArr = arr.reverse(); alert(newArr); // [4, 1, 3, 1, 520] alert(arr); // [4, 1, 3, 1, 520]
10.Array.sort(空/ 参数)
该方法是用于数组的排序,可以有参数,该参数为一个函数,代表怎么去排序(固定用法 );无参数时,排序按字符串大小排序(即逐位进行比较),返回值为排序过后的新数组,会改变原数组。
var arr = [11, 66, 34, 77, 15, 5]; var newArr = arr.sort(function(value1, value2) { return value1 - value2; }); alert(newArr); // [5, 11, 15, 34, 66, 77] alert(newArr.sort()); // [11, 15, 34, 5, 66, 77] alert(arr); // [11, 15, 34, 5, 66, 77]
11.Array.toString()
该方法是将数组转化为字符串,将数组转化为字符串,不会改变原数组,返回值为新字符串。
var arr = [11, 66, 34, 77, 15, 5]; var newArr = arr.toString(); alert(newArr); // "11,66,34,77,15,5" alert(arr); // [11, 66, 34, 77, 15, 5]
12.Array.isArray(obj)
该方法是判断一个对象是不是数组,返回值是布尔值,是则为true,反之为false。
var arr = ["hello", "world", 520]; var str = "hello world 520"; alert(Array.isArray(arr)); //true alert(Array.isArray(str)); //false
13.Array.indexOf(item, start(可选))
该方法是查找数组中某个指定元素首次出现的位置,start为在数组中开始检索的位置,省略start参数则默认从首位开始检索,若元素未检测到,则返回值为 - 1,若存在,则返回所匹配元素的下标。
var arr = ["火车", "高铁", "飞机", "自行车", "摩托车", "自行车"]; var a = arr.indexOf("自行车"); var b = arr.indexOf(3); var c = arr.indexOf("自行车", 4); alert(a); // 3 alert(b); // -1 alert(c); // 5
有什么不对的地方请兄der指出来
原文:https://www.cnblogs.com/ccb0725/p/12733188.html