使用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循环,但不确定第一个如何获得"唯一"名称。
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));
您可以在下划线库_的帮助下完成。独特的功能。
首先,我们需要使用JavaScript map函数将数组从对象数组转换为字符串数组。
之后,我们使用_。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和_。
尝试使用$.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>
相关文章:
- 如何从数组中查找唯一对象
- JavaScript:从对象数组中获取唯一值及其计数
- 创建具有2个唯一数字的Javascript数组
- javascript和具有唯一密钥的es6过滤器数组
- 根据对多个数组唯一的元素创建一个新数组
- 将数组中的重复项转换为唯一项,而不删除Javascript中的任何项
- 映射对象数组,并且仅采用唯一
- Ember JS如何获取具有唯一属性值的数组
- 如何使 JSON 数组唯一
- Javascript:编写一个函数,接收一个数组,然后返回一个只有唯一数字的数组,只删除数组
- 从数组列表中返回唯一的数组
- 推送时请确保数组中的值是唯一的
- 对具有唯一值的对象键的数组进行排序
- 基于两个属性从 javascript 中的对象数组中获取唯一数组
- Javascript:如何将对象数组转换为具有排序唯一数组的对象
- 合并并返回唯一数组问题
- 日期的唯一数组
- Javascript唯一数组项
- 以最有效的方法查找唯一数组
- 在Javascript中迭代地声明唯一数组