关于Array的属性和方法

一、关于Array的属性和方法

Array作为JavaScript的内置函数,Array.prototype继承于Object.prototype,同时Array.prototype上内置了很多方法:

concat()、Array()、copyWithin()、entries()、every()、fill()、filter()、find()、findIndex()、forEach()、
includes()、indexOf()、join()、keys()、lastIndexOf()、map()、pop()、push()、reduce()、reduceRight()、
reverse()、shift()、slice()、some()、sort()、splice()、toLocaleString()、toString()、unshift()、values()

 

var arr = [1, 2, 3];
var arr1 = ['a', 'b', 'c'];
var arr2 = ['A', 'B', 'C'];


1、数组的length属性

console.log(arr.length); // 3


注意:

  1. 数组的length不要随意赋值,如arr.length = 10;    ==>  除非要清空数组:arr.length = 0;
  2. 数组不要通过索引随便赋值,如:arr[10] = 10;

以上行为都会改变数组。

 

2、数组的方法
a. concat

console.log(arr.concat(arr1, arr2)); //[1, 2, 3, "a", "b", "c", "A", "B", "C"] 


==> 返回新的数组,不改变原数组

 

b. slice(start,end)

console.log(concatArr.slice(0, 3)); // [1, 2, 3] ==> 下标[0, 3)
console.log(concatArr.slice(-3)); // ["A", "B", "C"] ==> 倒数第3位到结束
console.log(concatArr.slice(-6, -3)); // ["a", "b", "c"] ==> 倒数下标[-6, -3)


==> slice(start,end)==>返回一个新的数组。包括数组 concatArr 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有元素。当没有第二个参数时,截止到最后。

==> 当只有一个参数,并且这个参数为负数时,表示从数组尾部开始,-1表示倒数第一开始,n表示倒数第n开始到最后。
slice 可以说和String的slice一模一样,字符串变数组而已,忘了可以去看: 关于String的属性和方法。

如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,我们可以很容易地复制一个Array
var arr2 = concat.slice(); // 数组的复制

注意:有些地方说slice()就是对应String的substring()版本,我觉得不对,因为subString的参数都不能为负。


c. indexOf

console.log(concatArr.indexOf('a')); // 3
console.log(concatArr.indexOf('1')); // -1 ==> 代表没有

//注意了,数字1和字符串'1'是不同的元素。
d. push和pop

push()向Array的末尾添加 若干 元素,pop()则把Array的 最后一个 元素删除掉。

注意:若干、最后一个

e. unshift和shift

如果要往Array的头部添加 若干 元素,使用unshift()方法,shift()方法则把Array的 第一个 元素删掉。

注意:若干、第一个


f. sort ==> 改变了原数组,返回改变后的数组(即原数组 === ) sort()可以对当前Array进行排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序:

concatArr.sort(); // [1, 2, 3, "A", "B", "C", "a", "b", "c"]


排序规则:

  1. 字符串根据ASCII码进行排序,而小写字母a的ASCII码在大写字母之后。
  2. 把所有元素先转换为String再排序。

g. reverse ==> 改变了原数组,返回改变后的数组(即原数组 === )

concatArr.reverse(); // ["C", "B", "A", "c", "b", "a", 3, 2, 1]


h. join ==> 将数组转换为字符串,忘了可以去看: 关于String的属性和方法

i. splice

修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素。

第一个参数:索引开始
第二个参数:表示长度

==> 从指定的索引开始删除若干元素

剩余的参数表示从索引开始的地方插入剩余的参数作为新的值
总结:
     1、操作(改变)原数组,返回删除的元素组成的数组
     ==> 为数不多的操作原对象的方法

     2、 只有一个参数时,默认都数组的最后
     ==> 清空某一个数组的方法:
    a). arr.length = 0;
    b). arr.splice(0);(同时也复制了一个数组)

    3、参数少于或等于2个的时候表示只删除,不添加。
    4、参数多2个且第二个参数为0的时候表示只添加,不删除。
    5、参数多2个且第二个参数不为0的时候表示既删除又添加,可以用来批量替换数组的元素值。

 

二、特别注意,改变原数组的方法有:

splice、sort、reverse、 push和pop、unshift和shift

 

posted @ 2018-04-05 15:00  yanmuxiao  阅读(978)  评论(0编辑  收藏  举报