学海无涯,回头是岸
不务正业
极简老人

增 Create:

push(); 向数组尾添加元素

var arr = [2,6,8,7,4];
arr.push(100);
console.log(arr);    //输出 [2,6,8,7,4,100]

unshift(); 向数组头添加元素

var arr = [2,6,8,7,4];
arr.unshift(100);
console.log(arr);        //输出 [100,2,6,8,7,4]

仅向数组头尾添加元素显然满足不了我们日常需求。但js确实没提供向数组指定位置添加元素的函数,那么我们就自己创建新函数向数组指定位置添加元素。

 向Array原型链添加新函数

/*
 create:向数组指定位置添加元素(支持添加多个)。
 parameter table:
        index      下标位置
        valArr     元素列表(可用字符串),建议用数组
        ishowmany  是否添加多个元素
 */
Array.prototype.insert = function(index,valArr,ishowmany){
    if(index > -1 && index < this.length){     //检查添加下标是否超出范围
        if(ishowmany == true){                       //是否需要添加多个元素
            if(typeof(valArr.length) != "undefined"){   //检查添加多个元素是否为数组
                for(var i = 0; i < valArr.length; i++){
                    this.splice(index + i,0,valArr[i]);
                }
            }
        }else{
            this.splice(index,0,valArr);
        }
    }else{
        console.log("数组下标超出范围.");
    }
}

使用范例:

//添加多个元素
var arr = ['a','b','c'];
arr.insert(1,[6,5],true);    
//注意若写成 arr.insert(1,'65',true);输出结果会是[ 'a', '6', '5', 'b', 'c' ]
console.log(arr);    //输出[ 'a', 6, 5, 'b', 'c' ]

//添加单个元素
var arr = ['a','b','c'];
arr.insert(1,'65');    //也可写成arr.insert(1,'65',false); 第三个参数默认为false
console.log(arr);    //输出[ 'a', '65', 'b', 'c' ]

//注意第三个参数默认为false
var arr = ['a','b','c'];
arr.insert(1,'365',true);    //若第三个参数为true,添加元素字符串会默认被分割成单个字符
console.log(arr);    //输出[ 'a', '3', '6', '5', 'b', 'c' ]

**************************************************************************************************************************************

删 Delete:

pop(); 删除数组尾元素

var arr = ['a','b','c'];
arr.pop();
console.log(arr);    //输出[ 'a', 'b' ]

shift(); 删除数组头元素

var arr = ['a','b','c'];
arr.shift();
console.log(arr);    //输出[ 'b', 'c' ]

创建删除指定下标或指定值得函数。

向Array原型链添加新函数

 

posted on 2017-01-07 13:07  MirageFireFox  阅读(13)  评论(0编辑  收藏  举报