javascript学习指南|JavaScript常用操作数组函数

更新时间:2018-02-18    来源:php函数    手机版     字体:

【www.bbyears.com--php函数】

数组操作函数

join(delimiter)            把数组中各个元素使用分隔符(delimiter)拼成字符串
concat(array1, array2, …)           合并数组,对原数组不影响,只是返回合并后的新数组
pop()                    删除并返回最后一个元素
push(element1, element2, …)            在数组末尾追加元素
shift()                  删除并返回第一个元素
unshift(element1, element2, …)        在数组开始位置添加元素
reverse()              将数组元素顺序首尾反转
sort(sortby)           给数组排序
slice(start, end)       返回一个新的数组,将start开始,到end结束(不包括end)之间的元素复制到新数组中
splice(start, count, replaceElement1, replaceElement2, …)      

删除或者替换数组元素,从start开始,对count个元素进行删除或替换

如果提供replaceElement参数则进行替换,否则进行删除操作,被替换的元素个数和replaceElements的个数不必相等
返回一个数组,包含被删除或替换掉的元素

下面我结合一些函数我们把常用的数组操作实例介绍


1.删除数组中指定的元素

 代码如下


/**
 * 参考实例
foreach = function (obj, insp){
  if(obj== null && obj.constructor != Array){
  return [];
}
//obj是要处理的数组,obj==null 表示对象尚未存在;obj.constructor != Array 表示对象obj的属性的构造函数不是数组;
//constructor属性始终指向创建当前对象的构造函数。两个条件均满足,则返回空数组[];

//下面对constructor属性作进一步了解。
var obj= [1, 2, 3, 4]; // 等价于 var obj= new Array(1, 2, 3, 4);
console.log(obj.constructor === Array); // 返回true 表明obj的构造函数为Array;

var foo= function() { }; // 等价于 var foo = new Function();
console.log(foo.constructor === Function); // 返回true 表明foo的构造函数为Function;

var obj = new Foo();  //由构造函数实例化一个obj对象
console.log(obj.constructor === Foo); // 返回true 表明obj的构造函数为Foo;

 */

//删除数组中指定的元素

function del(val, arr)
{
    //检测参数
    if (arr == null && arr.constructor != Array) {
        return [];
    }
   
    var newarr = []; //不存在的保存到新数组中
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] != val)
            newarr.push(arr[i]);
    }
    return newarr;
}
alert(del(2, [1, 2, 3, 4, 5, 2]));


2.去除重复的元素

 代码如下

 

/**
 *去除数组中重复的元素
把元素的值存为一个新数组的key,key是不可以重复的,然后变量次数组即可
 */
function unique(data) {
    data = data || [];
    var a = {};
    len = data.length;
    for (var i = 0; i < len; i++) {
        var v = data[i];
        if (typeof(a[v]) == "undefined") {
            a[v] = 1;
        }
    };
    data.length = 0;
    for (var i in a) {
        data[data.length] = i;
    }
    return data;
}
alert(unique([12,12,12,34]));


 3.删除数组指定下标的元素

 

 代码如下

/**
 *删除数组的指定下标元素
 *
 * i 的值是一直在变的,n的值是只有if条件成立的时候才会变(会依次递增)
 */

Array.prototype.remove=function(dx)
  {
    if(isNaN(dx)||dx>this.length){return false;}
    for(var i=0,n=0;i     {
        if(this[i]!=this[dx])
        {
            this[n++]=this[i]
        }
    }
    this.length-=1
  }

var arr = [1,2,3,4,2,5];
alert(arr);
arr.remove(2);

alert(arr);

本文来源:http://www.bbyears.com/jiaocheng/39345.html