JS笔记(二)--数组API

数组API:

1. 数组 to 字符串:2个

 `var str=arr.toString();`//输出每个元素的内容,用逗号分隔
 `var str=arr.join("连接符");`//输出每个元素的内容,使用自定义的连接符连接。如果省略连接符,则等效于toString

固定套路:

(1)无缝拼接数组为字符串:

 var chars=['H','e','l','l','o'];
 var word=chars.join("");

(2)将单词,拼接成句子:

 var words=['no','zuo','no','die']
 var stmt=words.join(" ");

(3)将数组拼接成html元素!
*优化:如果出现频繁拼接字符串,可用数组+join方法代替

2. 连接数组:var newArr=arr1.concat(值1,值2,arr2,…)

 不修改原数组,而是返回新数组,必须用变量接住新数组
 如果参数是数组,就会将数组打散成元素再拼接

3. 获得子数组:var subArr=arr.slice(starti,endi+1);

 不修改原数组,只返回新数组
 slice支持负数参数,如果参数为负,则自动用length-参数,含头不含尾

4. splice:删除 插入 替换 ——直接修改原数组

    1. 删除:[var deleted=]arr.splice(starti,n)
        starti表示开始删除的位置, n表示删除的个数
        deleted表示被删除的元素,临时组成的子数组如果不需要被删除的元素,可不用变量接收返回值。
    2. 插入:arr.splice(starti,0,值1,值2,...)
        starti表示开始插入的位置,原starti位置的值会向后顺延
        0表示一个都不删除
        值1,...:要在starti位置插入的新值。
    3. 替换:[var deleted=]arr.splice(starti,n,值1,值2,...)
        在starti位置先删除n个元素,再插入新元素

5. 颠倒数组的元素:arr.reverse(); –》直接修改原数组

栈和队列:

栈:一端封闭,只能从另一端进出的数组
何时使用:希望封闭数组一端,只能从另一端进出,每次都操作新加入的元素时
 1. 开头封闭,结尾出入栈:
    入:arr.push(值);
    出:var last=arr.pop();
    出入栈操作不影响旧元素的下标
 2. 结尾封闭,开头出入栈:
    入:arr.unshift(值);
    出:var first=arr.shift();
    每次出入栈操作,都影响所有元素的下标

concat拼接 vs unshift,push

unshift push直接修改原数组
concat不直接修改原数组,而是返回新数组对象
unshift push每次只能压入一个元素,不支持数组参数
concat可拼接任意个元素,且支持数组参数

总结:仅压入一个元素时,就用栈操作,同时拼接多个元素时,就用concat

你可能感兴趣的:(javascript)