香草JavaScript-在满足多个条件时尝试更新数组元素
我试图创建一个接受数组的函数,每当其中一个值等于“food”时,就会打印“yummy”。第二个要求是更新(替换)整个数组,如果没有数组元素是“食物”,则打印一次“我饿了” 第二种情况是我遇到困难,不确定如何继续 我包括了两个测试用例,第二个我试图触发第二组条件香草JavaScript-在满足多个条件时尝试更新数组元素,javascript,arrays,Javascript,Arrays,我试图创建一个接受数组的函数,每当其中一个值等于“food”时,就会打印“yummy”。第二个要求是更新(替换)整个数组,如果没有数组元素是“食物”,则打印一次“我饿了” 第二种情况是我遇到困难,不确定如何继续 我包括了两个测试用例,第二个我试图触发第二组条件 function alwaysHungry(array){ // iterate through the array values using a for() loop for(var i = 0; i < array.le
function alwaysHungry(array){
// iterate through the array values using a for() loop
for(var i = 0; i < array.length; i++){
// for each element equal to "food", change to yummy
if (array[i] === 'food'){
array[i] = 'yummy';
}
// if no array elements are "food", print "I'm hungry" only once
else if(array[i] !== 'food'){ // this is checking any array index, not simply the first
array[i] = "I\'m hungry";
}
// return array; // returning the array here will short circuit the for loop
}
return array;
}
// Test cases
console.log(alwaysHungry(['food','drink','soda','food','drink']));
// Expected result => ["yummy", "drink", "soda", "yummy", "drink"]
console.log(alwaysHungry(['rocks','air','water']));
// Expected result => ["I'm hungry"]
function alwaysHungry(数组){
//使用for()循环遍历数组值
对于(var i=0;i[“美味”、“饮料”、“苏打水”、“美味”、“饮料”]
console.log(总是用石头、空气和水);
//预期结果=>[“我饿了”]
作为旁注,上面的问题是我在训练营项目中遇到的一个问题的变体,我试图理解/解决这个问题,而不是严重依赖内置方法
我真正想从中了解的是,当值“food”不存在时,如何在第二个测试用例中归零,并相应地进行更新。我已经理解,我上面的(else-if)逻辑将更新任何不等于“food”的数组元素,而不是只更新完全不存在“food”的数组(测试用例)
这是一个供参考和提前感谢的变量。您可以使用一个标志
饥饿
,并使用false
初始化此变量。然后检查数组的值,必要时进行更新,并将标志设置为true
在返回的最后,根据饥饿
返回带有[“我饥饿”]
的数组或更新的数组
function alwaysHungry(数组){
var=true;
//使用for()循环遍历数组值
对于(var i=0;i[“美味”,“饮料”,“苏打”,“美味”,“饮料”]
console.log(总是用石头、空气和水);
//预期结果=>[“我饿了”]
挑战是否要求您返回传入的数组?或者您可以创建一个新数组并返回它吗?我认为创建一个空的占位符数组,例如var newArray=[]代码>,完全可以接受。我以前也做过很多次类似的面向阵列的挑战。然后使用newArray.push(array[i])
推入数组值。最后,我没有继续使用这个选项。一位同学早些时候向我建议了一个布尔值,现在我更清楚地看到了如何应用它。谢谢你,尼娜。