一辆亏、創(chuàng)建Array
創(chuàng)建數(shù)組主要有兩種方法衡蚂,第一種是使用數(shù)組構(gòu)造函數(shù)评雌,第二種是使用數(shù)組字面量表示法氯质。
- 使用數(shù)組構(gòu)造函數(shù)
如:var arr = new Array();
如果預(yù)先知道數(shù)組的長度,那么也可以直接給構(gòu)造函數(shù)傳遞該長度档址。
如:var arr = new Array(20);
如果知道數(shù)組中應(yīng)該包含的項盹兢,就直接在構(gòu)造的時候,傳遞數(shù)組中的應(yīng)該包含的項守伸。
如:var arr = new Array(1,2,3); - 使用數(shù)組字面量表示法
如:var arr = [1,2,3,4];
var arr2 = [];
二绎秒、數(shù)組的操作
- 數(shù)組方法
push();----向數(shù)組末端添加數(shù)據(jù)項;
pop();---獲取數(shù)組的最尾部的一個數(shù)據(jù)項尼摹;
shift();---獲取數(shù)組的頭部一項的數(shù)據(jù)信息见芹;
unshift();--與shift完全相反,就是向數(shù)組的頭部插入數(shù)據(jù)項信息窘问;
以上方法會直接修改數(shù)組本身
var a = [{n: 1},{z:5}];
var b = a;
b.unshift('aa');
//a = b = ["aa",{"n":1},{"z":5}]
- 驗證是否為數(shù)組
if(value instanseof Array){}
if(Array.isArray(value)){}//該方法只使用與高版本的瀏覽器:IE9+辆童、Firefox4+/Chrome
- 具體的編程實例
- 添加元素(數(shù)組末尾添加元素,不要直接修改數(shù)組 arr惠赫,結(jié)果返回新的數(shù)組 )
//方法一:slice()和push()結(jié)合
function append(arr, item) {
var newArr = arr.slice(0); // slice(start, end)淺拷貝數(shù)組
newArr.push(item);
return newArr;
};
//方法二:普通的迭代拷貝
function append(arr, item) {
var length = arr.length,
newArr = [];
for (var i = 0; i < length; i++) {
newArr.push(arr[i]);
}
newArr.push(item);
return newArr;
};
//方法三:使用concat
function append(arr, item) {
return arr.concat(item);
}
2)添加元素(添加任意位置的元素,不要直接修改數(shù)組 arr故黑,結(jié)果返回新的數(shù)組儿咱。)
//方法一:使用普通的迭代拷貝
function insert(arr, item, index) {
var newArr=[];
for(var i=0;i<arr.length;i++){
newArr.push(arr[i]);
}
newArr.splice(index,0,item);
return newArr;
}
//方法二:slice()和splice()結(jié)合
function insert(arr, item, index) {
var newArr=arr.slice(0);
newArr.splice(index,0,item);
return newArr;
}
//方法三:concat()和splice()結(jié)合
function insert(arr, item, index) {
var newArr=arr.concat();
newArr.splice(index,0,item);
return newArr;
}
- 刪除元素(刪除數(shù)組最后一個元素,不要直接修改數(shù)組 arr场晶,結(jié)果返回新的數(shù)組 混埠。)
//方法一:使用普通的迭代拷貝
function truncate(arr, item) {
var newArr=[];
for(var i=0;i<arr.length-1;i++){
newArr.push(arr[i]);
}
return newArr;
}
//concat()和pop()結(jié)合
function truncate(arr) {
var newArr = arr.concat();
newArr.pop();
return newArr;
}
- 刪除元素(刪除數(shù)組第一個元素,不要直接修改數(shù)組 arr诗轻,結(jié)果返回新的數(shù)組 钳宪。)
//方法一:使用普通的迭代拷貝
function curtail(arr) {
var newArr = [];
for(var i=1;i<arr.length;i++){
newArr.push(arr[i]);
}
return newArr;
}
//concat()和shift()結(jié)合
function curtail(arr) {
var newArr = arr.concat();
newArr.shift();
return newArr;
}
//方法三:slice()
function curtail(arr) {
return arr.slice(1);
}
- 合并數(shù)組(不要直接修改數(shù)組 arr,結(jié)果返回新的數(shù)組)
//方法一:使用普通的迭代拷貝
function concat(arr1, arr2) {
var newArr=[];
for(var i=0;i<arr1.length;i++){
newArr.push(arr1[i]);
}
for(var j=0;j<arr2.length;j++){
newArr.push(arr2[j]);
}
return newArr;
}
//方法二:concat()方法
function concat(arr1, arr2) {
return arr1.concat(arr2);
}
//方法三:slice()和push()結(jié)合
function concat(arr1, arr2) {
var newArr=arr1.slice(0);
for(var i=0;i<arr2.length;i++){
newArr.push(arr2[i]);
}
return newArr;
}
- 移除數(shù)組中的元素
//方法一:splice()方法
function remove(arr, item) {
var newArr = arr.slice(0);
for(var i=0; i<newArr.length; i++) {
if(newArr[i] == item) {
newArr.splice(i, 1);
}
}
return newArr;
}
var arr = [1,2,3,4,2];
var item = 2;
console.log(remove(arr, item));
console.log(arr);
//方法二:push()方法
function remove(arr,item){
var newarr = [];
for(var i=0;i<arr.length;i++){
if(arr[i] != item){
newarr.push(arr[i]);
}
}
return newarr;
}
原文鏈接(http://blog.csdn.net/u010297791/article/details/53000603)