为什么结果包含多个具有相同值的副本
Why does the result contain multiple copies of the same value?
使用以下JavaScript,为什么输出包含相同值的多个副本?
reduce = function(docs) {
var values = [];
docs.forEach(function(doc) {
if (values.indexOf(doc.value) != -1) return;
values.push(doc.value.toDateString());
});
return values;
}
doc = {value: new Date("2012-01-01T00:00:00Z")}
reduce( [ doc, doc ] )
// => ["Sat Dec 31 2011", "Sat Dec 31 2011"]
您的验证是错误的。
它应该是if (values.indexOf(doc.value.toDateString()) != -1) return;
reduce = function(docs) {
var values = [];
if (values.indexOf(doc.value.toDateString()) != -1) return;
values.push(doc.value.toDateString());
return values;
}
doc = {value: new Date("2012-01-01T00:00:00Z")}
reduce(doc)
//["Sun Jan 01 2012"]
试试这个。如果你只想通过一个foreach函数,为什么要做这个函数?您还应该只将doc
传递给reduce函数一次。
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- JSONP请求返回结果,但也触发error_callback
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- 将地理编码结果转换为php变量以发布到mysql数据库
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- JQuery:向多个匹配结果添加换行符的最简单方法
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- webpack代码拆分了handlerbs文件——结果是文件很大
- JavaScript循环无法正确计算/显示结果
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- jQuery使用api获取typeform结果
- 根据条件检查数据库结果
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- Angular,表达式{{}}的结果没有插入到ng-click中
- 为什么结果包含多个具有相同值的副本