js数组相关操作

concat()

数组合并,连接两个或更多的数组,并返回结果。
语法:
arrayObject.concat(arrayX,arrayX,…,arrayX);
注:arrayX必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。

var a = [1,2,3];
var b = [4,5];
var arr = a.concat(b);  //[1,2,3,4,5]
var arr1 = a.concat("a","b"); //[1, 2, 3, "a", "b"]
var arr2 = a.concat(a,b); //[1, 2, 3, 1, 2, 3, 4, 5]

concat()方法还能复制数组

var a = [1,2];
var b = a.concat();
b==>[1,2]

join()

把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
语法:
arrayObject.join(separator)
注:separator可选。指定要使用的分隔符。无该参数,则默认逗号作为分隔符。

var a = [1,2,3];
var arr = a.join();  //1,2,3
var arr1 = a.join("_");  //1_2_3

pop()

删除并返回数组的最后一个元素,把数组长度减 1
语法:
arrayObject.pop()
注:返回值为删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

var a = [1,2,3];
var b = [];
var arr = a.pop();  //3
var arr1 = b.pop();  //undefined

push()

向数组的末尾添加一个或更多元素,并返回新的长度。
语法:
arrayObject.push(newelement1,newelement2,…,newelementX)
newelement1必填,指要添加到数组的第一个元素

注:push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组,会改变原数组的长度。

var a = [];
var arr = a.push(); //0
var arr1 = a.push(1,2,3); // 3

a ==>[1,2,3]

reverse()

用于颠倒数组中元素的顺序。
语法:
arrayObject.reverse()
注:该方法会改变原来的数组,而不会创建新的数组。

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

shift()

用于把数组的第一个元素从其中删除,并返回第一个元素的值。
语法:
arrayObject.shift()
注:如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。该方法不创建新数组,而是直接修改原有的 arrayObject。

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

a.length // 2
a==>[2,3]

slice()

方法可从已有的数组中返回选定的元素。
语法:
arrayObject.slice(start,end)
start必需。规定从何处开始选取。如果为负数,则从数组尾部开始算起的位置(-1 指最后一个元素,-2 指倒数第二个元素,以此类推)。
end可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。未指定该参数,则表示从 start 到数组结束的所有元素。参数为负数,表示从数组尾部开始算起的元素。

注:该方法并不会修改数组,而是返回一个子数组。

var a = [1, 2, 3, 4, 5, 6];
var arr = a.slice(1,4);  // [2,3,4]
var arr1 = a.slice(1,-1); //[2, 3, 4, 5]
var arr1 = a.slice(-1); //[6]

splice()

删除元素,并向数组添加新元素。
语法:
arrayObject.splice(index,count,item1,…,itemX)

index:必需。添加/删除元素的位置,负数则从数组结尾处规定位置。
count:必需。要删除的数量。如果设置为 0,则不会删除。
item:数组要添加的元素。

var a = [1, 2, 3, 4, 5, 6];
var arr = a.splice(1,3,"a","b","c"); 
a==>[1, "a", "b", "c", 5, 6]

var arr = a.splice(1, 0, "a", "b", "c");
a==>[1, "a", "b", "c", 2, 3, 4, 5, 6]

sort()

用于对数组的元素进行排序。
语法:
arrayObject.sort(sortby)
注:如果数组包含undefined,会被排到数组的尾部。如果不带参数的调用sort(),数组元素以字母表顺序排序

var a = [1, 20, 3, 44, 575, 60];
function sortFun(a,b){
  return a-b
}
var arr = a.sort(sortFun);

a==>[1, 3, 20, 44, 60, 575]

unshift()

向数组的开头添加一个或更多元素,并返回新的长度。
语法:
arrayObject.unshift(item1,item2,…,itemX)

var a = [1, 2, 3, 4, 5, 6];
var arr = a.unshift("a","b","c"); 
a==>["a", "b", "c", 1, 2, 3, 4, 5, 6]

valueOf()

返回 Array 对象的原始值。
语法:
arrayObject.valueOf()

var a = [1, 2, 3, 4, 5, 6];
var arr = a.valueOf();
a ==> [1, 2, 3, 4, 5, 6]
arr==> [1, 2, 3, 4, 5, 6]

toString()

将数组转成字符串类型,并返回结果。
语法:
arrayObject.toString()

var a = [1, 2, 3, 4, 5, 6];
var arr = a.toString(); //1,2,3,4,5,6

toLocaleString()

把数组转换为本地字符串。
语法:
arrayObject.toLocaleString()

var a = [1, 2, 3, 4, 5, 6];
var arr = a.toLocaleString(); //1,2,3,4,5,6

forEach()

从头至尾遍历数组,为每个元素调用指定的函数。
语法:
arrayObject.forEach(eachFun)

var a = [1,2,3,4,5];        
var sum = 0;           
a.forEach(function (value) {
    sum += value
});   
sum ==> 15

map()

调用数组的每个元素传递给指定函数,并返回一个数组
语法:
arrayObject.map(mapFun)

var a = [1,2,3,4,5];
             
var b = a.map(function (value) {
    return value+1
})
b ==> [2,3,4,5,6]

filter()

返回调用数组的一个子集。
语法:
arrayObject.filter(filterFun)

var a = [1,2,3,4,5];             
var b = a.filter(function (value) {
    return value > 3
})
b ==> [4,5]

猜你喜欢

转载自blog.csdn.net/weixin_44242600/article/details/87349916