我是编码新手(第二天!),在测试网站上的指导任务之后,我得到了以下代码,该代码无法正确返回,我一生都无法弄清楚。我的数学很差,所以这没有帮助,但请跟我说清楚。
为什么以下代码在传递名称数组时没有返回正确的信息。
function gatherFeedback (feedbackArray) {
let positive = 0;
let negative = 0;
let neutral = 0;
for (let i = 0; i < feedbackArray.length; i++) {
if (feedbackArray[i][1] <= 10 && feedbackArray[i][1] > 6) {
positive++;
} else if (feedbackArray[i][1] <= 6 && feedbackArray[i][1] > 4) {
neutral++;
} else {
negative++;
}
}
let test = {'positive': positive, 'negative': negative, 'neutral': neutral}
return test;
}
我通过了三项测试中的前两项,但最后一项我坚持了下来。
收集反馈的输出:
{ "positive": 2, "negative": 2, "neutral": 1 }
输出应该是
{ "positive": 2, "negative": 1, "neutral": 2 }
它应该返回一个具有三个属性的对象:一个积极的键,其值为积极评论的数量;负面评论的键,其值为负面评论的数量;并且,中立键,其值为中立评论的数量。正面 (7-10)、负面 (0-3) 或中性 (4-6) 函数 GatherFeedback 接受一个数组数组,每个数组都包含与会者姓名的字符串和显示他们评分的数字10 人中的一方
示例:
gatherFeedback([['maddie', 10], ['jatinder', 10], ['rose', 1]]);
// returns {positive: 2, negative: 1, neutral:0}
function gatherFeedback(feedbackArray) {
let positive = 0;
let negative = 0;
let neutral = 0;
for (let i = 0; i < feedbackArray.length; i++) {
if (feedbackArray[i][1] <= 10 && feedbackArray[i][1] >= 6) {
positive++;
} else if (feedbackArray[i][1] <= 6 && feedbackArray[i][1] >= 4) {
neutral++;
} else {
negative++;
}
}
let test = {'positive': positive, 'negative': negative, 'neutral': neutral}
return test;
}
else if 语句需要大于等于,而不仅仅是大于 4:
feedbackArray[i][1] >= 4
代替
feedbackArray[i][1] > 4
function gatherFeedback (feedbackArray){
let positive = 0;
let neutral = 0;
let negative = 0;
for (let i = 0; i<feedbackArray.length; i++)
if(feedbackArray[i][1] <= 3){ negative++;
}else if(feedbackArray[i][1] <=6){neutral++;
} else {positive++;
}
return { 'positive': 积极, "negative" : 消极, "neutral" : 中性 }; }