//對象數組 var trackObj1={ "trackId":31, "direcLine":"line31" }; var currentTrack=[]; currentTrack.push(trackObj1); var trackObj2={ "trackId":30, "direcLine":"line30" }; currentTrack.push(trackObj2); //判斷currentTrack這個數組中是否存在trackId=31的對象 /*按照屬性值,查找對象*/ function findElem(arrayToSearch,attr,val){ for (var i=0;i<arrayToSearch.length;i++){ if(arrayToSearch[i][attr]==val){ return i; } } return -1; } var index=findElem(currentTrack,"trackId","31");
//在jquery中處理JSON數組的情況中遍歷用到的比較多,但是用添加移除這些好像不是太//多。 //今天試過json[i].remove(),json.remove(i)之后都不行,看網頁的DOM對象中好//像JSON數據是以數組的形式出現的,查閱了下相關JS中數組的操作一試果然很爽。 //記錄下來。 //1、數組的創建 var arrayObj = new Array(); //創建一個數組 var arrayObj = new Array([size]); //創建一個數組並指定長度,注意不是上限,是長度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //創建一個數組並賦值 //要說明的是,雖然第二種方法創建數組指定了長度,但實際上所有情況下數組都是變長的,也就是說即使指定了長度為5,仍然可以將元素存儲在規定長度以外的,注意:這時長度會隨之改變。 //2、數組的元素的訪問 var testGetArrValue=arrayObj[1]; //獲取數組的元素值 arrayObj[1]= "這是新值"; //給數組元素賦予新的值 //3、數組元素的添加 arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 將一個或多個新元素添加到數組結尾,並返回數組新長度 arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 將一個或多個新元素添加到數組開始,數組中的元素自動后移,返回數組新長度 arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//將一個或多個新元素插入到數組的指定位置,插入位置的元素自動后移,返回""。 //4、數組元素的刪除 arrayObj.pop(); //移除最后一個元素並返回該元素值 arrayObj.shift(); //移除最前一個元素並返回該元素值,數組中元素自動前移 arrayObj.splice(deletePos,deleteCount); //刪除從指定位置deletePos開始的指定數量deleteCount的元素,數組形式返回所移除的元素 //5、數組的截取和合並 arrayObj.slice(start, [end]); //以數組的形式返回數組的一部分,注意不包括 end 對應的元素,如果省略 end 將復制 start 之后的所有元素 arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //將多個數組(也可以是字符串,或者是數組和字符串的混合)連接為一個數組,返回連接好的新的數組 //6、數組的拷貝 arrayObj.slice(0); //返回數組的拷貝數組,注意是一個新的數組,不是指向 arrayObj.concat(); //返回數組的拷貝數組,注意是一個新的數組,不是指向 //7、數組元素的排序 arrayObj.reverse(); //反轉元素(最前的排到最后、最后的排到最前),返回數組地址 arrayObj.sort(); //對數組元素排序,返回數組地址 //8、數組元素的字符串化 arrayObj.join(separator); //返回字符串,這個字符串將數組的每一個元素值連接在一起,中間用 separator 隔開。