JavaScript检查数组中是否有唯一的东西
JavaScript checking if something is unique in an array
我一直在SO和谷歌上搜索,但我不知道该怎么做。我正在创建我自己的小应用程序,它使用ajax和Yahoo API将RSS提要信息带回并显示在页面上,它会带回标题、描述、缩略图和GUID。目前的问题是,数组中返回的带有图像的数据是重复的,所以我的想法是"我会检查guid,如果它们不是唯一的,就删除一个",但我尝试的方法不起作用。欢迎提出任何建议!
这就是我获取数据的方式,将xml转换为JSON,JSON将包含属性"title,description,pubdate,thumbna&guid"
function getData() {
return $.getJSON("giant yahoo api url" + "%22&format=json&callback=?",
function(data) {
}
);
重复处理
handlebars.registerHelper("removeDuplicate", function(results) {
var a = results;
var b = results.guid;
var i = 2;
foreach(b in a) {
if( b.count != 1) {
b--;
}
}
});
为了解决我遇到的重复问题,我像以前一样编写了一个手把助手,但经过一些调整,它现在可以按预期工作,如果项目在数组中,则只返回[0]项目!
handlebars.registerHelper("rssFeed", function(results) {
var a = results;
if(Array.isArray(a)) {
return a[0];
}
else {
return a;
}
});
你可以像下面这样过滤:
var uniques = [];
results.forEach(function(result)) {
var control = true;
uniques.forEach(function(single) {
if(single.guid == result.guid) control = false;
if(control) uniques.push(result);
})
}
您可以使用Array.prototype.reduce
,快速(草率)示例:
handlebars.registerHelper("removeDuplicate", function(results) {
return results.reduce(function(arr, item) {
var unique = true;
arr.forEach(function(i) {
if (i.guid === item.guid) unique = false;
});
if (!unique) return arr;
arr.push(item);
return arr;
}, []);
});
相关文章:
- 使用onkeyup JS事件检查输入的值是否唯一
- 检查字符串中的字符是否都是唯一的
- 为什么尽管查询查找记录,mysql 数据没有拉入表单,查找值是否需要是唯一的
- chase.com 登录流是否使用 JavaScript 中的设备唯一标识符
- Node.js with Geddy:geddy.string.uuid(x) 是否确保字符串是唯一的
- 如果元素是唯一的,使用 javascript 更改 ID 是否是一种可以的做法
- 是否解析对象ID'它在不同类别中是否唯一
- JavaScript检查数组中是否有唯一的东西
- Javascript:确定字符串中的所有字符是否都是唯一的,如果不是,则删除重复字符
- console.log是否是api's返回内容的唯一选项?
- 如何循环遍历一个对象并测试它是否为唯一存在的键
- 将具有唯一id的对象集合存储为以id作为键的关联数组,而不是作为常规数组,是否存在缺陷?
- WorkLight是否提供了唯一的id ?
- 是否有可能在不使用唯一对象属性的情况下区分两个对象?
- 是否有一种更简单的方法来使用lodash从多个对象集合中构造一个唯一值的数组?
- 检查电子邮件地址是否为系统唯一
- 在应用程序中使用唯一的方法名是否很好
- 是否可以将一个唯一的CSS类附加到多个<李>元素,或者使用Jquery对它们重新排序
- angularJS指令名是否唯一?
- 当所有字段都具有唯一id时,我如何知道复选框是否被选中