簡體   English   中英

使用 jQuery 和 Javascript 的數組中的唯一項

[英]Unique Items in Array using jQuery and Javascript

有一個問題(不是太復雜,但我似乎想不出一個明確的方法來解決)。

我有一系列項目,其中有一個重復出現的 id,因此出於說明目的,請考慮:

[
    {name: "john", task: "dig"},
    {name: "john", task: "swim"},
    {name: "john", task: "eat"},
    {name: "paul", task: "dig"},
]

從這里我想創建一個表,其中列是名稱 - 所以約翰和保羅,然后在下面會有任務。

我想我需要 2 個 for 循環,但不確定第一個如何獲得“唯一”名稱。

我可以使用 jQuery 中的某些東西可以解決。

Array.prototype.reduce()

 var arr = [ {name: 'john', task: 'dig'}, {name: 'john', task: 'swim'}, {name: 'john', task: 'eat'}, {name: 'paul', task: 'dig'}, ]; var result = arr.reduce(function(table, element) { if(!table[element.name]) { table[element.name] = []; } table[element.name].push(element.task); return table; }, {}); // For demo: document.write(JSON.stringify(result));

您可以借助下划線庫 _.unique 函數來完成。

首先,我們需要使用 JavaScript 映射函數將數組從對象數組轉換為字符串數組。

之后,我們使用 _.unique 來獲取唯一的字符串。

x=[
{name: 'john', task: 'dig'},
{name: 'dani', task: 'didg'},
{name: 'john', task: 'diadg'},
{name: 'john', task: 'diasdg'},
];
x=x.map(function (i) {return i.name}) // ['john','dani','john','john']
x=_.unique(x)     //   ['john','dani']

http://underscorejs.org/#uniq(_.uniq和 _.unique 是一樣的)

嘗試使用$.each()

 var data = [{ name: "john", task: "dig" }, { name: "john", task: "swim" }, { name: "john", task: "eat" }, { name: "paul", task: "dig" }]; $.each(data, function(key, value) { var fn = function(el) { return el.find("tbody").append($("<tr />", { "html": "<td>" + value.task + "</td>" })) } if (!$("table[name=" + value.name + "]").is("*")) { var elem = $("<table />", { "name": value.name, "html": "<tbody><th>" + value.name + "</th></tbody>" }).appendTo("body"); fn(elem) } else { fn($("table[name=" + value.name + "]")) } })
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM