我正在尝试遍历一个数组,如果一个元素等于一组值,我想更新该元素。例如:
var arr = ["apple", "orange", "banana", "kiwi"];
for(var x= 1; x < arr.length; x++) {
if(arr[x] === kiwi" || "banana") {
arr[x] = arr[x] + "1";
}
}
&#13;
预期输出
arr = ["apple", "orange", "banana1", "kiwi1"];
我似乎无法做到这一点。
编辑:对于错误复制的代码的错误,我已经修复了错字。答案 0 :(得分:3)
这是您的代码:
var arr = ["apple", "orange", "banana", "kiwi"];
for(x = i; x < arr.length; x++) {
if(arr[x] === kiwi" || "banana") {
arr[x] = arr[x] + "1";
}
}
让我们分析您的方法:
您正在使用未声明的变量i
。
for(x = i; x < arr.length; x++) {
^
您没有以正确的方式使用逻辑运算符
if(arr[x] === kiwi" || "banana")
^
此代码段中包含代码中的修复:
var arr = ["apple", "orange", "banana", "kiwi"];
// most of the world use "i" as index in an array:
for(var i = 0/*Initialized with 0*/; i < arr.length; i++) {
// Now the code is using two side comparison using OR (||) operator.
if(arr[i] === "kiwi" || arr[i] === "banana") {
arr[i] = arr[i] + "1";
}
}
console.log(arr);
&#13;
请参阅?现在它正在运用你的逻辑!
答案 1 :(得分:1)
首先,“bananna”永远不会是false
,所以arr[x] === kiwi" || "banana"
永远都是真的。在英语中,您可能会说“如果项目等于猕猴桃或香蕉”,但在代码中您需要更具体:“如果项目等于猕猴桃或项目等于香蕉”(arr[x] === "kiwi" || arr[x] === "banana"
)。
如果要检查组,则更容易创建一个数组并检查该项是否在数组中。 if(~["kiwi","banana"].indexOf(arr[x]))
在英语中,这说:“如果该组中存在项目。”如果项目不存在,indexOf()
返回-1,但是使用bitwise NOT (~)
,-1变为零,这是假y。如果这太难理解,你可以改为if(["kiwi","banana"].indexOf(arr[x]) > -1)
。
还有一件事......确保你正在检查控制台是否有错误。除非你真的熟悉控制台,否则你不会走得太远。它将告诉您有关缺少引号和您在代码中遇到的其他问题的事情。
祝你好运。答案 2 :(得分:0)
试试这个
var arr = ["apple", "orange", "banana", "kiwi"];
for(var i = 0; i < arr.length; i++) {
if(arr[i] === "kiwi" || arr[i] === "banana") {
arr[i] = arr[i] + "1";
}
}
console.log(arr);
有两个错误,首先没有声明x
或i
,然后您忘记了if
条件中的引号,最后您没有真正比较当前数组价值为banana
,这就是所有人。
答案 3 :(得分:0)
你犯了一堆错误:
1:"
缺少kiwi"
。 "kiwi"
应该是arr[x] === kiwi" || "banana"
,因为它是一个字符串。
2:|| "banana"
此处的问题是arr[x] === "kiwi" || arr[x] === "banana"
,它始终返回true,应为for(var x= 1; x < arr.length; x++)
3:var x= 1
这不反映,但var x= 0
会跳过数组中的第一项,因此它应为var arr = ["apple", "orange", "banana", "kiwi"];
for(var x= 0; x < arr.length; x++) {
if(arr[x] === "kiwi" || arr[x] === "banana") {
arr[x] = arr[x] + "1";
}
}
console.log(JSON.stringify(arr))
更新了代码段:
{{1}}