JavaScript 数组
JavaScript的Array可以包含任意数据类型,并通过索引来访问每个元素。
要取得Array的长度,直接访问length属性:
var arr = [1, 2, 3.14, \'Hello\', null, true]; arr.length; // 6
直接给length 修改为一个新的值的话
var arr = [1, 2, 3]; arr.length; // 3 arr.length = 6; arr; // arr变为[1, 2, 3, undefined, undefined, undefined] arr.length = 2; arr; // arr变为[1, 2]
可以通过索引修改
var arr = [\'A\', \'B\', \'C\']; arr[1] = 99; arr; // arr现在变为[\'A\', 99, \'C\']
请注意,如果通过索引赋值时,索引超过了范围,同样会引起Array大小的变化: var arr = [1, 2, 3]; arr[5] = \'x\'; arr; // arr变为[1, 2, 3, undefined, undefined, \'x\']
slice()
对应string substring()版本 它截取Array的部分元素 ,然后返回一个新的Array;
var arr = [\'A\', \'B\', \'C\', \'D\', \'E\', \'F\', \'G\']; arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: [\'A\', \'B\', \'C\'] arr.slice(3); // 从索引3开始到结束: [\'D\', \'E\', \'F\', \'G\']
push和pop push()向Array的末尾添加若干元素,pop()则把Array的最后一个元素删除掉: var arr = [1, 2]; arr.push(\'A\', \'B\'); // 返回Array新的长度: 4 arr; // [1, 2, \'A\', \'B\'] arr.pop(); // pop()返回\'B\' arr; // [1, 2, \'A\'] arr.pop(); arr.pop(); arr.pop(); // 连续pop 3次 arr; // [] arr.pop(); // 空数组继续pop不会报错,而是返回undefined arr; // []
sort sort()可以对当前Array进行排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序: var arr = [\'B\', \'C\', \'A\']; arr.sort(); arr; // [\'A\', \'B\', \'C\']
unshift和shift 如果要往Array的头部添加若干元素,使用unshift()方法,shift()方法则把Array的第一个元素删掉: var arr = [1, 2]; arr.unshift(\'A\', \'B\'); // 返回Array新的长度: 4 arr; // [\'A\', \'B\', 1, 2] arr.shift(); // \'A\' arr; // [\'B\', 1, 2] arr.shift(); arr.shift(); arr.shift(); // 连续shift 3次 arr; // [] arr.shift(); // 空数组继续shift不会报错,而是返回undefined arr; // []
splice splice()方法是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素: var arr = [\'Microsoft\', \'Apple\', \'Yahoo\', \'AOL\', \'Excite\', \'Oracle\']; // 从索引2开始删除3个元素,然后再添加两个元素: arr.splice(2, 3, \'Google\', \'Facebook\'); // 返回删除的元素 [\'Yahoo\', \'AOL\', \'Excite\'] arr; // [\'Microsoft\', \'Apple\', \'Google\', \'Facebook\', \'Oracle\'] // 只删除,不添加: arr.splice(2, 2); // [\'Google\', \'Facebook\'] arr; // [\'Microsoft\', \'Apple\', \'Oracle\'] // 只添加,不删除: arr.splice(2, 0, \'Google\', \'Facebook\'); // 返回[],因为没有删除任何元素 arr; // [\'Microsoft\', \'Apple\', \'Google\', \'Facebook\', \'Oracle\']
第一个参数是起始位置,删除的元素个数,后面是要插入的元素
concat concat()方法把当前的Array和另一个Array连接起来,并返回一个新的Array: var arr = [\'A\', \'B\', \'C\']; var added = arr.concat([1, 2, 3]); added; // [\'A\', \'B\', \'C\', 1, 2, 3] arr; // [\'A\', \'B\', \'C\']
reverse reverse()把整个Array的元素给掉个个,也就是反转: var arr = [\'one\', \'two\', \'three\']; arr.reverse(); arr; // [\'three\', \'two\', \'one\']
join join()方法是一个非常实用的方法,它把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串: var arr = [\'A\', \'B\', \'C\', 1, 2, 3]; arr.join(\'-\'); // \'A-B-C-1-2-3\'