JS Array对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS Array对象相关的知识,希望对你有一定的参考价值。
Array是javascript的原生对象
构造函数
var arr=new Array()
参数可以是单个数字表示产生长度为几的数组,但各个成员的值都为空,如果是多个数字的话,就表示数组成员;也可以是字符串数组等。但如果参数是空位的话,就会读取到undefined,而且读取不到键名
实例:
var arr = new Array(3);
arr.length // 3
arr // [ empty x 3]
判断是否为数组
Array.isArray()返回一个布尔值,表示是否为数组,返回值为布尔值
var arr = [1, 2, 3];
Array.isArray(arr) // true
方法
1:valueOf()表示对该对象求值,返回数组本身
var arr = [1, 2, 3];
arr.valueOf() // [1, 2, 3]
2:toString()返回数组的字符串形式,数组变字符串
var arr = [1, 2, 3];
arr.toString() // "1,2,3"
3:push()在数组的末端添加一个或者多个元素,并返回添加新元素的数组长度,会改变原来的数组
var arr = [1,2];
console.log(arr.push(3));//3---返回添加新元素后的数组长度
4:pop()删除数组的最后一个元素,并返回该元素,会改变原来的数组。对空数组使用pop方法,会返回undefined
var arr = [‘a‘, ‘b‘, ‘c‘];
console.log(arr.pop()); // ‘c‘--删除最后一个元素,并将其返回
5:shift()用于删除数组的第一个元素,并返回该元素,会改变原来数组
Unshift()用于在数组第一个位置添加元素,并返回新元素的数组长度,该方法会改变原数组
var a = [‘a‘, ‘b‘, ‘c‘];
console.log(a.shift()); // ‘a‘--在第一个位置删除元素a
console.log(a );// [‘b‘, ‘c‘]
a.unshift(‘d‘); // 4--添加d元素,并返回数组长度4
6:join()将数组转化为字符串。以指定参数作为分隔符,将所有数组成员连接成为一个字符串返回,如果数组成员是undefined或null或者空位,会将转化为空字符串
var a = [1, 2, 3];
console.loga.join(‘ ‘));// ‘1 2 3‘
console.loga.join(‘ | ‘));// "1 | 2 | 3 "
console.loga.join()); // "1,2,3"
7:concat()数组合并,将新数组的成员添加到原数组成员的后面,但不影响原数组
var a=[1,2,3];
var b=[4,5,6];
console.log(a.concat(b));//[1,2,3,4,5,6]
8:reverse()用于颠倒数组元素,返回改变后的数组,该方法会改变原数组
var a = [‘a‘, ‘b‘, ‘c‘];
console.log(a.reverse()); // ["c", "b", "a"]
console.log(a );// ["c", "b", "a"]
9:arr.slice(start,end)返回一个新数组,原数组不变:两个参数,第一个参数为起始位置,第二个参数为终止位置,左开右闭[start,end),取小不取大
var a = [‘a‘, ‘b‘, ‘c‘];
console.log(a.slice(0)) // ["a", "b", "c"]
console.log(a.slice(1, 2)) // ["b"]
10:splice()用于删除原数组的一部分成员,并且在删除的位置添加新的数组成员,返回值是被删除的元素,会改变原数组 如果是删除的话第一个参数是索引起始位置,第二个参数是被删除元素的个数;插入元素的话可以直接在这两个元素后面添加新成员
var a = [‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘,‘g‘];
a.splice(4, 2) // ["e", "f"]
a//[‘a‘, ‘b‘, ‘c‘, ‘d‘,‘g‘];
a.splice(0, 2, ‘h‘, ‘i‘) // ["a", "b"]
a // [ ‘c‘, ‘d‘,‘g‘,‘h‘, ‘i‘];--删除a,b并添加h i
11:sort()对数组成员进行排序,按照字典顺序排序,数值会被转化为字符串,然后再进项字典顺序排序,排序后原数组
成员将被改变,可以传入一个函数作为参数
实例1: console.log([9,7,8,6].sort());//[6,7,8,9]
实例2:[3,2,4,1].sort(function (n1,n2){
return n1-n2;
});
console.log(b);//[1,2,3,4]
12:map()将数组的所有成员依次传入参数,然后将每一次的执行结果组成一个新数组返回,接受一个函数,函数中传入三个参数,当前成员 当前位置 数组本身 相当于遍历数组,映射一个新数组
var numbers = [1, 2, 3];
numbers.map(function (n) {
return n + 1;
});// [2, 3, 4]
numbers
// [1, 2, 3]
13:forEach遍历数组 element,index,array---当前值、当前位置、整个数组
var a=[1,2,3,4];
a.forEach(function (val, index, arr) {
arr[index]+=val;
})
console.log(a)//[2,4,6,8]
14:filter()用于过滤数组成员,满足条件的成员组成一个新数组返回
console.log([1,2,3,4].filter(function (val, index, arr) {
if (val % 2 == 0) {
return val;
}
}));//[2,4]
15:some()返回一个布尔值,表示判断数组成员是否符合某种条件。
var arr = [1, 2, 3, 4, 5];
arr.some(function (elem, index, arr) {
return elem >= 3;
});
// true---如果有一个大于等于3,就会返回true
16:reduce()累加//累乘
console.log([1,2,3].reduce(function (totle, current, index) {
return totle *= current;
}));//6
以上是关于JS Array对象的主要内容,如果未能解决你的问题,请参考以下文章