1. 程式人生 > >js裡的實用小技巧

js裡的實用小技巧

1.陣列去重

說到陣列去重肯定,你腦海裡閃過很多的方法,但是往往這些的時間複雜度都是偏高的,比較不合理的

這裡介紹用indexOf()來去重,就很實用

 var arr=[1,2,3,2,21,1,2,4,1,2];
    var newarr=[];
    for (var i=0;i<arr.length;i++) {
        if(newarr.indexOf(arr[i])===-1){
            if(typeof(arr[i])=='number'){
                newarr.push(arr[i]);
            }    
        }
    }
    console.log(newarr);

2.說到迴圈,一個優秀的開發真的不能僅僅想到for迴圈,因為有的時候操作for迴圈也會有不便的時候

對於物件迴圈,用for...in比較好,兩種比較

var obj={
        s:123,
        osa:'asdasd',
        as:'666',
    }
    for(o in obj){
        console.log(o);
        console.log(obj[o]);
    }

對於陣列迴圈呢,我個人不怎麼推薦用for...in,而是用for...of比較好感覺,兩者在陣列的對比

var newarr=[1,2,4,5,7,8];
for
(a in newarr){ console.log(newarr[a]); } for (a of newarr){ console.log(a); }

對了,說到迴圈,不得不說一說foreach這個東西了,這個我個人覺得運算元組挺方便的,物件還行吧

forEach方法中的function回撥有三個引數:第一個引數是遍歷的陣列內容,第二個引數是對應的陣列索引,第三個引數是陣列本身

var newarr=[1,2,4,5,7,8];
newarr.forEach(function(v){  
    console.log(v);  
});

物件的話,則要:

var obj={
        s:123,
        osa:'asdasd',
        as:'666',
    }
    Object.keys(obj).forEach(function(v){  
        console.log(v,obj[v]);  
    });

在物件裡常用的是在裡修改,增加屬性,如:這樣在每個物件都加上state為0了

for (var i = 0; i < this.images.length; i++) {
    this.images.forEach((ele) => {
    ele.state = 0;
    });
}

字串轉換成物件:
object = JSON.parse(str);
物件轉換成字串:
str=JSON.stringify(object);