资讯专栏INFORMATION COLUMN

javaScript基础——js语言精粹 第八章 数组方法

myshell / 1756人阅读

摘要:数组方法产生一个新数组,他包涵一份的浅复制并把一个或多个参数附加在其后。方法移除中的最后一个元素并返回该元素。参数是可选的,默认值是该数组的长度。如果大于等于,得到的结果将是一个新的空数组。字符串也有一个同名的方法,方法对的内容进行排序。

数组

array.concat

concat 方法产生一个新数组,他包涵一份array的浅复制(shallow copy)并把一个或多个参数 item 附加在其后。如果参数 item 是一个数组,那么他的每个元素会被分别添加。
例子:
var a = ["a", "b", "c"];
var b = ["x", "y", "z"];
var c = a.concat(b, true);
c 变成 ["a", "b", "c", "x", "y", "z", true]



array.join(separator)

join方法吧一个array构造成一个字符串,它先把array的每个元素构造成一个字符串,接着用一个separator分隔符把他们连在一起。默认的separator 是逗号","。
要想做到无间隔的连接,我们可以使用空字符串作为separator。
例子:
var a = ["a" , "b", "c"];
a.push("d");
var c = a.join("");
c 变成 字符串 "abcd";


array.pop()

pop 和 push方法使得数组array可以像堆栈stack一样工作。pop 方法移除array中的最后一个元素并返回该元素。如果该array是empty,他就会返回undefined。
var a = ["a", "b" , "c"];
var c = a.pop();
a 变成 ["a", "b"]
c 变成 "c"


array.push(item...)

push方法把一个或多个参数 item附加到一个数组的尾部。和concat方法不同的是,它会修改array,如果参数是一个数组,他会把参数数组作为单个元素 整个添加到数组中,并返回这个array的新长度值。
var a = ["a", "b", "c"];
var b = ["x", "y", "z"];
var c = a.push(b, true);
a 变成了 ["a", "b", "c", Array[3], true]
c 是 a 的length, c 是 5;


array.reverse()

reverse方法反转array里的元素的顺序,并返回array本身;
var a = ["a", "b", "c"];
var b = a.reverse();
得到的结果,b 和 a 都是 ["c", "b", "a"]


array.shift()

shift 方法移除数组array的第一个元素并返回该元素。如果这个array是空的,它会返回undefined,shift通常比pop慢得多。
var a = ["a", "b", "c"];
var c = a.shift();
a 变成了 ["b", "c"]
c 变成了 "a"

shift可以这样实现:
    Array.method("shift", function () {
        return this.splice(0, 1)[0];
    });


array.slice(start, end)
    slice方法对array中的一段做浅复制。首先复制array[start],一直复制到array[end]为止。end 参数是可选的,默认值是该数组的长度array.length。如果两个参数中的任何一个是负值,array.length会和他们相加,试图让他们变成非负数。如果start大于等于array.length,得到的结果将是一个新的空数组。千万别把slice 和 splice 弄混了。字符串也有一个同名的方法,string.slice
   
   
 array.sort(comparefn)
 sort方法对array的内容进行排序。他不蹦正确给一组数字排序:
 var n = [4, 8, 15, 16, 23, 42];
 javaScript的默认比较函数把被排序的元素视为字符串,它尚未足够只能到在比较这些元素之前先检测他们的类型,所以当它比较这些数字的时候,会把他们转化为字符串,于是会得到错误的结果。
 通过comparefn比较函数,例如接受两个参数a b,如果 a = b,就返回0;如果a应该在前面,就返回一个负数,如果b 在前面就返回一个正数。
 n.sort(function (a, b) {
     return a - b;
 });
 得到[4, 8, 15, 16, 23, 42];
 
 
 array.splice(start, deleteCount, item...)
 
 splice方法从array中移除一个或多个元素,并用新的item替换他们。参数start是从数组array中移除元素的开始位置。参数deleteCount是要移除的元素个数。如果有额外的参数,那些item会插入到被移除元素的位置上,它返回一个包含被移除元素的数组。
 
 
 array.unshift(item...)
 shift 方法像 push 方法一样,用于把元素添加到数组中,但它是把item插入到array的开始部分而不是尾部,它返回array的新的length:
 var a = ["a", "b", "c"];
 var r = a.unshift("?", "@");
 a 变成了 ["?", "@", "a", "b", "c"] 
 r 变成了 5
 
 
 
    


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80224.html

相关文章

  • 八章-Java常用API#yyds干货盘点#

    摘要:常用类概述包含执行基本数字运算的方法没有构造方法,如何使用类中的成员呢看类的成员是否都是静态的,如果是,通过类名就可以直接调用。所有类都直接或间接的继承该类。 1 常用API1.1 Math1.1.1 Math类概述Math包含执行基本数字运算的方法没有构造方法,如何使用类中的成员呢?看类的成员是否都是静态的,...

    番茄西红柿 评论0 收藏2637
  • 【Hello CSS】八章-CSS图形

    摘要:有趣的图形通过不同的属性,我们能组合出很多有趣的图形。系列是以基础概念为主题的系列文章,旨在帮助大家更深刻地了解并且提高在各位开发者心目中的地位。 作者:陈大鱼头 github: KRISACHAN 前言 上一节留了一个问题:为什么 currentColor 是驼峰命名?。 其实也有小伙伴答对了,原因就是因为 currentColor 是作为 SVG 的属性值存在,因此在 CSS 里就...

    terasum 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<