麻烦设置作为参数传递给函数的对象的值 - javascript

时间:2017-10-01 01:16:42

标签: javascript arrays reactjs object

好吧所以这已经破坏了我的一天,我正在尝试设置一个对象的值的属性,我已经传递给一个函数,但它根本就没有表现

findFoodItemsWithRelevantNutrients = relevantNutrients => {
    let foodItems = [];
    let parent = this;

    console.log(relevantNutrients);//STACK OVERFLOW: #3

    for(let q=0; q<19; q++) {
       let food = FoodItems[q];
        //Goes through 20 foods present in FoodItems array
        let foodProps = Object.entries(food); //breaks each field for a given food object into key/value pairs
        food.relevanceScore = 0;
        food.keyNutrients = [];
        relevantNutrients.forEach(function (nutrientReport) {
            //Go through each relevant nutrient passed into this function

            //var nutrientReport = relevantNutrients[i];
            let currentNutrient = nutrientReport.nutrient;

            for(let j=0; j<foodProps.length; j++) {
                let prop = foodProps[j];
                let propName = prop[0];
                let propValue = prop[1];
                //see if the nutrient is present in a significant amount in the food
                if( propName === currentNutrient.name && propValue > 10 ) {
                    nutrientReport.RDA = propValue; //set to propValue
                    console.log(nutrientReport.RDA); //STACK OVERFLOW #1 -shows propValue
                    console.log(nutrientReport); //STACK OVERFLOW #2 - shows arbitrary value
                    food.relevanceScore += 10;
                    food.relevanceScore += nutrientReport.benefits.length + nutrientReport.toxicity.length + nutrientReport.deficiencyArr.length;
                    food.keyNutrients.push(nutrientReport);
                }
            }
        });

        if(food.relevanceScore > 10) {
            food = parent.getItemTotalOrganBenefitScores(food);
            foodItems.push(food);
        }
    }

   console.log(foodItems);
   foodItems.sort(function (foodA, foodB) {
      return foodB.relevanceScore - foodA.relevanceScore;
   });
    return foodItems;
};

我的混淆产生于我以“STACK OVERFLOW”为前缀的行

  1. 我已设置“nutrientReport.RDA”的值,当我记录它时,它会显示我按预期设置的值。
  2. 2

    问题:当我记录整个对象时,我看不到我只是将“nutrientReport.RDA”设置为的值。 问题:为什么我设置的值不能正确粘贴?

    3

    问题:当我在这里记录作为参数传入的对象的值时,它们反映了问题#2中记录的值

    问题:如果我在设置任何值之前记录它,这怎么可能。

    额外细节: 此功能在反应组件内 并依赖于从另一个函数返回的对象。 像这样 this.findFoodItemsWithRelevantNutrients(this.searchNutrientBenefits(this.props.queryVariable))

0 个答案:

没有答案