HTML数组

  • Post author:
  • Post category:其他


数组

var arr=[1,2,3,4,5,6,7];


数组的forEach

中的this是window,不是数组自身,(多用于对象型数组)

item 第一位参数是数组中元素

index  第二位参数是数组中的下标

arrays 第三位参数是数组自身

 arr.forEach(function (item,index,arrays) {
           console.log(item,index,arrays);
           if(item%2===0){
                item+=10;
            arrays[index]=item;
            }
        });

forEach遍历数组每一项只用于数组中,item数组的每项只能读,更改数据用index,如果是每一项是对象item可以改对象的属性值。

对象型数组双循环,外循环用for循环,内循环用for(in)循环。循环数组新建行,循环对象属性新建列。这样就将对象型数组放入表格当中。

var arr=[3,4,5]; 0,1,2这里的数字我们叫它下标

var arr1=[];//定义一个空数组

使用new Array()新建数组时,填写一个参数时,这个参数将变为这个数组的长度如果填写的参数超过一个时,我们认为是给数组中添加了这些元素,并没有规定长度

使用new Object([])   var arr4=new Object([1,2,3,4,5]);这也是定义一个数组

push  在数组的尾部添加数据,可以给尾部添加多个数据,每个数据用逗号分割,返回数组的长度

unshift 在数组的头部添加数据,可以给头部添加多个数据,每个数据用逗号分隔,返回数组的长度

pop 尾部删除一个元素,返回被删除的元素

shift 头部删除一个元素,返回被删除的元素

这里分开写unshift是每次给最前面插入-1,在最前面插入-2,表现为-2,-1

表示在最前面插入两个一个是-1,一个是-2,表现为-1,-2,arr.unshift(-1,-2);

删除1个,不加任何参数var s=arr.pop();

引用 当数据不是数字,字符,布尔,是对象变量时,将这个数据传递另一个变量时,他们之间的关系是引用关系对象引用关系

结果=第一个数组.concat(第二个数组,第三个数组…)结果就是返回的数组被连接的最终数组因此该方法一定要有变量接收使用该方法后返回的数组是一个独立的新数组,和以前的数组没有任何引用关系

字符结果=数组.join(“连接的符号”);返回的是一个字符串,把数组连接在一起

var str=arr.join("&");
        console.log(str);
        function join(arr,str) {
            if(!str){                                          
                str=",";
            }
            var s="";
            for(var i=0;i<arr.length;i++){
                if(i===arr.length-1){
                    s+=arr[i];
                }else{
                    s+=arr[i]+str;
                }
            }
            return s;

取出的结果=数组.slice(起始位置,结束位置)

从数组中取出数据,返回一个数组,即使是一个,也返回一个数组返回的数组与原有数组无引用关系,是新数组起始位置是,从这个下标位置开始取数据结束位置是到结束的下标位置的前一个数据果参数仅有一个时,这个参数就是起始位置,一直到数组结束为止全部截取起始位置参数也可以是负数,负数指从后向前数。-1就是最后一位,-2就是倒数第二位结束位置参数也可以是负数,负数指从后向前数,slice(-3,-1),倒数第三位和倒数第二位被截取出来

1、如果没有填第二个参数,是指到数组尾部

2、我们用得到的结果覆盖了原有数组,这样保持变量不会有添加,并且不需要清除多余的变量

结果(被删除数组)=数组.splice(起始位置,要删除的总数量,要添加的数据….)数组.splice(起始位置,0,要添加的数据);给数组从起始位置的下标开始插入要添加的数据数组.splice(起始位置,要删除的总数);把数组从起始位置的下标开始删除要删除数量的数据数组.splice(起始位置,要删除的总数,要添加的数据),当删除的总数,与添加的数据一样多时,我们认为这是在做替换

1、起始位置可以给负数,表示从后向前数

2、如果不给第二个参数,表示从起始位置删除到数组的结尾处

reverse()将原数组倒序,修改了原数组返回一个新的倒序后的数组

sort() 按照第一位数据来排序的

sort(function(a,b){}) 这个函数是一个比较函数

a和b分别表示上一个要比较的数据和下一个要比较的数据

return a-b  如果返回上一个减去下一个,就是从小到大排序

return b-a 如果返回下一个减去上一个,就是从大到小排序

var shopping=[

{id:”001″,name:”电池”,price:30},

{id:”002″,name:”电池1″,price:31},

{id:”003″,name:”电池2″,price:28},

{id:”004″,name:”电池3″,price:35} ];

shopping.sort(function (a,b) {


return a.price-b.price;

});

console.log(shopping);

随机0-1之间任意小数,不包含1

Math.random();

随机乱序

 arr.sort(function () {
return Math.random()-0.5;});
console.log(arr);

数组中删除多个元素时,可以先将不需要删除的内容添加在一个新数组中,然后覆盖原有数组最后删除新数组就可以了

arr=arr4.concat();
        arr4.length=0;
        arr4=null;
        console.log(arr)
  var arr=[1,12,23,34,48,60,87,58,49,11,21,12];
        var arr1=[];
        for(var i=0;i<arr.length;i++){
            if(arr[i]%2===1){
                arr1.push(arr[i])
            }
        }
        arr=arr1.concat();
        arr1.length=0;
        arr1=null;
        console.log(arr)

Var arr=[1,2,3,4,5];
Var arr1=arr.reverse();
arr=arr.concat(arr1);
arr.sort(function(){
    returnMath.random()-0.5;
});
Var arr2=[];
for(var i=0;i<arr.length;i++){
    if(arr2.indexOf(arr[i])<0){
        arr2.push(arr[i])
    }
}




版权声明:本文为xiaoming0018原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。