2017-03-07 106 views
-1

目标:收集来自循环(通过JSON对象数组循环)的所有结果,并将这些值一起添加以产生用户的总分数。每次他们参加课程时,他们都会获得学分,但现在我需要弄清楚如何将他们加在一起。我是Javascript新手,想弄清楚如何创建一个不断更新的函数(通过for循环),以便我可以通过网页中的HTML生成它。Javascript:循环,迭代和添加新值

我一直在寻找这个stack example,它将值(对于游戏)进行循环并试图模仿它。我也在通过这个JS tutorial寻找for循环的例子。

var sum = 0; for (var i = 1; i <= 50; i++) { sum = sum + i; } 
alert("Sum = " + sum); // => Sum = 1275 

它由三个部分组成,用分号隔开。第一个是 初始化程序(var i = 1),它初始化循环,并且在开始时仅执行 。第二个是测试条件(i < = 50)。当 条件表达式计算结果为真时,循环的主体是 执行。如果为false,则循环终止。第三部分是一个 updater(i ++),它在每次迭代后被调用。更新器 通常递增或递减循环计数器。

我的代码:

//Function that returns HTML for successfully retrieved results 
    function resultsHTML(JSONResponseObjectArray) { 
     var ddObjectArray = JSONResponseObjectArray; 
     var resultString = ''; 
     //Loop through JSON Object Array 
     for(eeIndex in ddObjectArray) { 
      var creditHours = ddObjectArray[eeIndex].creditHours; 

     resultString += ceHTML(creditHours); 
     console.log("credit hours: " + creditHours); 

} 

}阵列(通过控制台)的

function addCredits(){ 
     var result = 0; 
     for (var i = 0; i <= 0; i++){ 
     result = creditHours + i; 
     } 
     return result; 
      console.log('new results ' + result); 
     } 

输出:

credit hours: null 
list.js:114 credit hours: 4 
list.js:114 credit hours: 6 
list.js:114 credit hours: null 
list.js:114 credit hours: 4 
list.js:114 credit hours: null 
+0

你有JSON对象的任何实例数组? –

+0

几个小问题。首先,你的'addCredits'函数在你的其他函数中。其次,'resultsHTML'没有关闭。第三,你的'console.log'不会发生,因为它是在结束函数的'return'之后。 –

回答

2

你会经常使用减少总结中的值一组对象(你的数据将会是什么 - 假设你不显示数据)。只需拨打以下addCredits()函数与阵列,与持有数量来总结属性替换b.credit

var creditHours = [{ 
 
    creditHours: 1 
 
}, { 
 
    creditHours: 2 
 
}]; 
 

 
function addCredits(data) { 
 
    return data.reduce(function(a, b) { 
 
    a += b.creditHours; 
 
    return a; 
 
    }, 0) 
 
} 
 
console.log(addCredits(creditHours));

+0

我注意到,来自第一个函数的'console.log(“credit hours:”+ creditHours);'不适用于将新函数添加到一起。 – thesayhey

+0

我不明白你的意思@thesayhey – baao

+0

我想用'var creditHours = ddObjectArray [eeIndex] .creditHours'替换'b.credit'',但控制台抱怨'creditHours没有定义' – thesayhey