js数组

数组

  一组有序的数据集合。

创建数组 []

var arr=[];
console.log(typeof arr); //object 对象
  为什么打印出来的是对象?因为数组是特殊的对象。
  为什么说 特殊 的对象?
  因为对象是没有顺序之说。数组的 key 是有需的,对象的 key 可以自己设定。

长度属性 length

var arr=[1,2,3,4,5]
console.log(arr.length); //5,获取数组的长度
arr.length=0;
console.log(arr.length); //0,说明数组的 .length 是可写的(字符串的 .length 是只读的)
arr.length=-1;
console.log(arr.length); //错误,不能为负值

添加数据到数组后 push()

  从数组里面推元素小括号里的内容,返回新数组的长度。
var arr=[1,2,3,4];
var a=arr.push(5);
console.log(arr.length); //5,数组长度多了,原来是4
console.log(a); //5
var a=arr.push(6,7,8,9); //添加多个数据到数组后面
console.log(arr); //[1, 2, 3, 4, 5, 6, 7, 8, 9] 新数组

删除数组后一个数据 pop()

  删除数组后面的一个数据并返回删除的元素,小括号中不加参数。
var arr=[1,2,3,4,9];
var a=arr.pop();
console.log(a); //9

添加数据到数组前面 unshift()

  返回新数组长度,添加多个用逗号分开。
var arr=[1,2,3,4,5];
var b=arr.unshift(0);
console.log(b) // 6
b=arr.unshift(-2,-1);
console.log(b) // 8

删除数组第一个元素 shift()

  返回删除的值。
var a=[99,2,3,4,5];
var b=a.shift();
console.log(b) // 99, 删除的值
console.log(a) // [2, 3, 4, 5] 当前数组内容

合并数组 concat()

  返回一个合并后的数组,参与合并的数组没有改变。返回的数组是由括号中的参数和原数组组成的。
var a=[1,2];
var b=[3,4];
var look=a.concat(b);
console.log(look) //[1,2,3,4] ,返回新数组
var look2=a.concat(888,b,999);
console.log(look2) //[1, 2, 888, 3, 4, 999]

从指定位置替换值 splice()

  有三个参数。
  第一个是删除的开始位置,第二个是删除的个数,第三个后面是要添加的值。
  只有1个参数:删除开始位置后的所有值;
  只有2个参数:只删除不替换;
var a=[1,2,3,4,5];
a.splice(2,1,5,6); //2,删除的开始位置; 1,删除个数; 5,6是添加的值
console.log(a.splice(2,1,5,6)); //5,返回删除的值
console.log(a) //[1, 2, 5, 6, 4, 5]

反序排列数组内的值 reverse()

  返回反序后的数组。
var a=[1,2,3,4,5];
var b=a.reverse();
console.log(b) //[5, 4, 3, 2, 1]

按指定方法对数组进行排序 sort()

  默认以字符串方法排序,按照ascll编码进行排列,但数字是逐个比较的。
  比如73<9。
var a=[1,40,2,3,5];
var b=a.sort();
console.log(b) //[1, 2, 3, 40, 5]
  比较 40 和 5
  先比 4 和 5 ,即第一位;这里4没有5大,则认为 40 没有 5 大。

随机打乱数组

var arr=[1,2,3,4,5,6,7,8,9,10]
arr.sort(function(a,b){
  return Math.random()-0.5 //为什么-0.5
  //减0.5,结果有一半的几率是正数,一半是负数
  //那为什么减0.5就能实现这种打乱的效果呢?
})
console.log(arr) //大概就酱 [3, 1, 4, 6, 2, 10, 5, 7, 9, 8]

以算术方式比较

  这种情况把 sort() 的参数写成函数。
  function(a,b){
    return a-b
  }
var a=[1,40,2,3,5];
var b=a.sort(function(a,b){return a-b});
console.log(b) //[1, 2, 3, 5, 40]

截取数组中的值 slice()

  slice(start,end);
  第一个参数是开始位置,第二个是结束位置。
  截取时包含只包含开始位置。
  返回新数组。
var a=[1,3,47,9,8,6,2];
var b=a.slice(2,4); //第一个参数是起始位置(包含)的下标,第二个参数是结束(不包含)的下标。
console.log(b) // [47, 9] 返回截取的新数组。
  例:
var a=[1,2,3,4,5];
var b=a.slice(2,5);
console.log(b) // [3, 4, 5]

转化数组为一个字符串 join()

  以小括号里面的参数为分隔符号,默认以逗号为分割符。
  返回字符串。
var a=[1,2,3,4,5];
var b=a.join(); //默认以","为分割符
console.log(a) //[1, 2, 3, 4, 5] 原数组没有变化
console.log(b) //1,2,3,4,5
var b=a.join("/"); //以"/"为分割符。
console.log(b) //1/2/3/4/5
var b=a.join(""); //反默认分割符去掉。
console.log(b) //12345
 
本文链接:http://www.cnblogs.com/daysme/p/6138384.html 
转载请注明出处[我的过去_博客园]:http://www.cnblogs.com/daysme/
posted @ 2016-12-06 17:28  程序媛李李李李蕾  阅读(575)  评论(0编辑  收藏  举报