【发布时间】:2017-07-29 19:54:57
【问题描述】:
我对 JavaScript 还是很陌生,但这就是我目前所掌握的。我正在尝试使用下划线以两批独特的偶数和奇数将其打印到控制台,我想我已经完成了 90% 的工作,但我碰壁了。
var arr = ([1,3,5,2,0,4,5,2,9,9,8,2]);
sort(arr);
function sort(arr) {
var evens = [];
var odds = [];
for(var i = 0; i < arr.length; i++) {
if(arr[i] % 2 ){
odds.push(arr[i]);
} else if(!(arr[i] % 2)) {
evens.push(arr[i]);
}
}
console.log("ODD NUMBERS:" + " " + odds);
console.log("EVEN NUMBERS:" + " " + evens);
if(_.uniq(evens).length != evens.length || _.uniq(odds).length != odds.length){
console.log("FAIL!");
}
}
【问题讨论】:
-
你碰到的墙到底是什么?您应该看到“失败!”每次因为您的输入数组有重复(偶数和奇数),所以
uniq长度永远不会与排序长度相同。你看到了什么,你期待看到什么? -
嗨,斯科特-我将两个列表打印到控制台,日志中包含所有偶数或奇数,以及一个告诉我 ReferenceError: _ is not defined 的错误(使用 CodePad) .我希望没有错误,并且两个列表都以唯一值打印到控制台。
-
该错误意味着未加载下划线。我有一段时间没有使用 CodePad,但我确信有一种方法可以包含库。在 JSFiddle 中,它位于左侧。找到后,您需要为下划线添加一个 url,例如:cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/…
-
另外,您在调用
_.uniq方法之前打印数组。您需要将odds和evens包装在_.uniq()中以从完整数组中获取唯一数组。 -
谢谢!你一直很有帮助,但还有一件事 - 正如我所说我是超级新人,我不太清楚你在 uniq 中包含偶数和赔率是什么意思。你愿意给我举一个例子吗?
标签: javascript arrays sorting underscore.js unique