gpt4 book ai didi

JavaScript if 语句忽略某些变量的值,但不忽略其他变量的值

转载 作者:行者123 更新时间:2023-12-03 10:19:10 25 4
gpt4 key购买 nike

我有一些以下形式的对象构造函数的代码:

function objectConstructor(item, r) {
//Pulls a string from elsewhere
this.name = Object.ObjectOne[item].name;
this.amount = Object.ObjectOne[item].amount;
this.buttonID = pickButton(r);
this.itemInitialCost = [];
this.itemPriceIncrease = [];

//This is the problematic area.
if(this.name != "valueOne" || this.name != "valueTwo" || this.name != "valueThree" || this.name != "valueFour" || [...]) {
for(var i = 0; i < Object.ObjectTwo[this.buttonID].cost.length; i++) {
this.itemInitialCost.push(Object.ObjectTwo[this.buttonID].cost[i].initialCost;
this.itemPriceIncrease.push(Object.ObjectTwo[this.buttonID].cost[i].costIncrease;
}
} else {
this.itemInitialCost.push("none");
this.itemPriceIncrase.push("none");
}
}

function pickButton(r) {
//The Function
}

var array = [Long List];

for(var i = 0; i < array.length; i++) {
item = array[i];
items[item] = new objectConstructor(item, i);
console.log("Created: " + item);
}

console.log(items);

前 58 个(共 67 个)项目对象已创建并正确分配值。第 58 个之后的所有项目都没有 ButtonID,因此当它们尝试获取其成本值时会抛出错误。为了防止这种情况,我设置了 if 语句来为这些项目(基于项目名称)分配成本值“none”。然而,他们似乎忽略了 if 语句中的条件并直接进入将设置正常元素成本的 for 循环。它们不会执行 else 语句,从而导致我的脚本崩溃。

为什么他们显然忽略了 if 语句的条件?

最佳答案

this.name 的任何值都将计算为 true:

this.name != "valueOne" || this.name != "valueTwo"

您可能需要在这些条件之间使用 &&

此外,也许查看 this 是否有一些 buttonID 比检查名称更有意义。

关于JavaScript if 语句忽略某些变量的值,但不忽略其他变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29723225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com