2014-01-27 61 views
1

例如我有此陣列remove元素其中元素等於

var array1 = [{ uid=24433357, first_name="fname", last_name="lname", ...}, 
{ uid=4821888, first_name="fname", last_name="lname", ...}, 
{ uid=677614, first_name="fname", last_name="lname", ...}, 
{ uid=4789723, first_name="fname", last_name="lname", ...}, 
{ uid=444464, first_name="fname", last_name="lname", ...}, 
{ uid=767687867, first_name="fname", last_name="lname", ...}] 

我想從ARRAY1除去元件其中uid = X

我不知道怎麼樣?

正常陣列我知道這個方法

array1.splice(index, count) 
+1

循環訪問array1中的所有元素。如果array1 [i] = x的uid添加到array2。一旦你的循環完成array1 = array2。 –

+0

你的數組中會有很多的語法錯誤,順便說一句。 – Andy

回答

3

第一修正你的對象,語法是完全錯誤的。見下面,然後使用Array#過濾功能通過其uid

var array1 = [{ uid:24433357, first_name:"fname", last_name:"lname"}, 
    { uid:4821888, first_name:"fname", last_name:"lname"}, 
    { uid:677614, first_name:"fname", last_name:"lname"}, 
    { uid:4789723, first_name:"fname", last_name:"lname"}, 
    { uid:444464, first_name:"fname", last_name:"lname"}, 
    { uid:767687867, first_name:"fname", last_name:"lname"}]; 

ES5不適合舊的瀏覽器來過濾掉不需要的對象

array1 = array1.filter(function(o){ 
    return o.uid !== 24433357 
}); 

經典的方式與舊的瀏覽器

兼容
for (var i = 0; i < array1.length; i++) { 

    if (array1[i].uid === 24433357) { 
     array1.splice(i, 1); 
    } 
} 

console.log(array1); 
+0

我知道語法不正確,語法在這種情況下並不重要,這裏的主要問題是解決方案)))謝謝))) –

1
for(var i = array1.length-1; i--;){ 
    if (array1.uid[i] === "x") array1.splice(i, 1); 
} 
+0

thx你,但我知道這個方法))) –