2014-09-29 105 views
0

陣列我有這個數組對象過濾器使用jQuery

var customers = [{ 
    "id": "1", 
    "name": "1", 
    "position": "1", 
    "office": "<button data-id=2 class='btn btn-danger'><i class='fa fa-trash fa-lg'></i> Delete record</button>", 
    "active": "1" 
}, { 
    "id": "2", 
    "name": "2", 
    "position": "2", 
    "office": "<button data-id=2 class='btn btn-danger'><i class='fa fa-trash fa-lg'></i> Delete record</button>", 
    "active": 0 
}]; 

我需要的是做出一個新的陣列,將只擁有活躍客戶羣,新的陣列看起來像

var activeCustomers = [{ 
    "id": "1", 
    "name": "1", 
    "position": "1", 
    "office": "1", 
    "active":"1" 
} 
}]; 

因爲你可能會看到只有一個活躍的客戶?

+0

您所擁有的'activeCustomers'變量是無效的JSON。還有一個額外的支架。另外,你想'辦公室'是1?看起來你會希望'辦公室'保持相同的價值,因爲你從來沒有提到過。 – 2014-09-29 14:34:39

+0

這不是json,它在數組中對象 – 2014-09-29 14:36:09

+0

JSON代表JavaScript Object Notation和'activeCustomers'無效。 – 2014-09-29 14:37:38

回答

1

您可以在array.prototype(MDN reference

var activeCustomers = customers.filter(function(customer) { return customer.active; }); 

注意使用.filter:你必須使用MDN填充工具下面IE9瀏覽器的支持。

+0

你有試過嗎? – 2014-09-29 13:57:14

+0

是的...它的工作原理。 – 2014-09-29 14:30:03

+0

請給我們工作小提琴 – 2014-09-29 14:33:53

1

您可以使用jQuery的功能grep

var activeCustomers = $.grep(customers, function(c){return c.active;}); 

注意,這將在所有的瀏覽器;另一種方法是使用Array.filter這是一個相對較新的JavaScript新增功能,並且在某些較舊的瀏覽器中會失敗。

+0

This return empty – 2014-09-29 13:55:42

+0

請確保您有我最近的編輯(我最初錯過了退貨聲明) – codebox 2014-09-29 13:58:03

+0

任何工作小提琴 – 2014-09-29 14:34:40