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