这可能是一个初学者的问题。。。我试图阻止一个函数在满足第一个条件时停止。这是我的例子:
// 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);