数组
一组有序的数据集合。
创建数组 []
var arr=[];
console.log( typeof arr);
|
为什么打印出来的是对象?因为数组是特殊的对象。
为什么说 特殊 的对象?
因为对象是没有顺序之说。数组的 key 是有需的,对象的 key 可以自己设定。
长度属性 length
var arr=[1,2,3,4,5]
console.log(arr.length);
arr.length=0;
console.log(arr.length);
arr.length=-1;
console.log(arr.length);
|
添加数据到数组后 push()
从数组里面推元素小括号里的内容,返回新数组的长度。
var arr=[1,2,3,4];
var a=arr.push(5);
console.log(arr.length);
console.log(a);
var a=arr.push(6,7,8,9);
console.log(arr);
|
删除数组后一个数据 pop()
删除数组后面的一个数据并返回删除的元素,小括号中不加参数。
var arr=[1,2,3,4,9];
var a=arr.pop();
console.log(a);
|
添加数据到数组前面 unshift()
返回新数组长度,添加多个用逗号分开。
var arr=[1,2,3,4,5];
var b=arr.unshift(0);
console.log(b)
b=arr.unshift(-2,-1);
console.log(b)
|
删除数组第一个元素 shift()
返回删除的值。
var a=[99,2,3,4,5];
var b=a.shift();
console.log(b)
console.log(a)
|
合并数组 concat()
返回一个合并后的数组,参与合并的数组没有改变。返回的数组是由括号中的参数和原数组组成的。
var a=[1,2];
var b=[3,4];
var look=a.concat(b);
console.log(look)
var look2=a.concat(888,b,999);
console.log(look2)
|
从指定位置替换值 splice()
有三个参数。
第一个是删除的开始位置,第二个是删除的个数,第三个后面是要添加的值。
只有1个参数:删除开始位置后的所有值;
只有2个参数:只删除不替换;
var a=[1,2,3,4,5];
a.splice(2,1,5,6);
console.log(a.splice(2,1,5,6));
console.log(a)
|
反序排列数组内的值 reverse()
返回反序后的数组。
var a=[1,2,3,4,5];
var b=a.reverse();
console.log(b)
|
按指定方法对数组进行排序 sort()
默认以字符串方法排序,按照ascll编码进行排列,但数字是逐个比较的。
比如73<9。
var a=[1,40,2,3,5];
var b=a.sort();
console.log(b)
|
比较 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
})
console.log(arr)
|
以算术方式比较
这种情况把 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)
|
截取数组中的值 slice()
slice(start,end);
第一个参数是开始位置,第二个是结束位置。
截取时包含只包含开始位置。
返回新数组。
var a=[1,3,47,9,8,6,2];
var b=a.slice(2,4);
console.log(b)
|
例:
var a=[1,2,3,4,5];
var b=a.slice(2,5);
console.log(b)
|
转化数组为一个字符串 join()
以小括号里面的参数为分隔符号,默认以逗号为分割符。
返回字符串。
var a=[1,2,3,4,5];
var b=a.join();
console.log(a)
console.log(b)
var b=a.join( "/" );
console.log(b)
var b=a.join( "" );
console.log(b)
|