防止功能在满足第一个条件时停止



这可能是一个初学者的问题。。。我试图阻止一个函数在满足第一个条件时停止。这是我的例子:

// Array of values
const valArray = [1, 4, 9, 16];
// Array of index values
const indArr = [0, 2];
const multipliedVal = valArray.map((val, index) => {
for (let i of indArr) {
// Case 1
if (index == i) return val * 3; 
// Case 2
if (index == i) return val * 3; 
else return val;
}
});
console.log(multipliedVal);

在情况1中,它输出:

阵列[3,未定义,27,未定义]

在情况2中,它输出:

阵列[3,4,9,16]

我想应用情况2,如果valArray的索引为0和2(如indArr中定义的(,它会将valArray的值乘以3,但map函数在满足第一个条件后停止运行。它确实将1乘以3,但不是9。我希望输出为:

阵列[3,4,27,16]

我尝试了一些其他的拼接方法,但没有弄清楚。我敢打赌,我试图实现的目标会涉及到一些递归,但我不知道如何做到这一点。

也许有人可以帮忙?谢谢

使用indexOf检查indArr中是否存在index。如果是,则乘以该值并返回,否则返回值

const valArray = [1, 4, 9, 16];
// Array of index values
const indArr = [0, 2];
const multipliedVal = valArray.map((val, index) => {
if (indArr.indexOf(index) !== -1) {
return val * 3
}
return val;
});
console.log(multipliedVal);

最新更新