我如何在ob内的数组中插入新项目

时间:2018-11-18 14:08:32

标签: javascript

var john = {

  billValues: [124, 48, 268, 180, 42],
  tipcalculation: function() {
    this.tipsForEachBill = [];
    this.tipsPlusBill = [];

    for (var i = 0; i < this.billValues.length; i++) {
      if (this.billValues[i] < 50) {
        this.tipsForEachBill.push(this.billValues[i] * 0.2);

      } else if (this.billValues[i] >= 50 && this.billValues[i] < 200) {
        this.tipsForEachBill.push(this.billValues[i] * 0.15);

      } else {
        this.tipsForEachBill.push(this.billValues[i] * 0.1);
      }
    }
  }
};


console.log(john.tipsForEachBill);

我在控制台中得到的结果是“未定义” 我知道还有其他方法可以做到,但是我需要知道什么错了! 为什么我不能将项目推入数组?

2 个答案:

答案 0 :(得分:0)

如果tipsForEachBill函数未运行,则不会创建数组const obj = { add: function () { this.b = []; } }; console.log(obj.b); obj.add(); console.log(obj.b);。参见下面的示例。

outStream.write(contactsinformations.stream()
         .collect(Collectors.joining(System.lineSeparator())));

答案 1 :(得分:0)

因为该属性直到调用var john = { billValues: [124, 48, 268, 180, 42], tipcalculation: function() { this.tipsForEachBill = []; this.tipsPlusBill = []; for (var i = 0; i < this.billValues.length; i++) { if (this.billValues[i] < 50) { this.tipsForEachBill.push(this.billValues[i] * 0.2); } else if (this.billValues[i] >= 50 && this.billValues[i] < 200) { this.tipsForEachBill.push(this.billValues[i] * 0.15); } else { this.tipsForEachBill.push(this.billValues[i] * 0.1); } } } }; // do the tip calculation john.tipcalculation() // now john.tipsForEachBill exists console.log(john.tipsForEachBill);才创建,否则不存在,因为这是您引用该属性的唯一位置

f-strings