这可能是一个初学者的问题……我试图防止某个函数在遇到第一个条件时停止。这是我的示例:
// 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,undefined,27,undefined]
在情况2中,它输出:
数组[3,4,9,16]
我想应用情况2,如果索引2等于0和2(如indArr中定义),它将valArray的值乘以3(但map函数在满足第一个条件后停止运行)。它确实将1乘以3,而不是9。我希望输出为:
数组[3,4,27,16]
我用splice方法尝试了其他一些东西,但没有弄清楚。我敢打赌,递归将与我要实现的目标有关,但无法弄清楚该怎么做。
也许有人可以提供帮助?谢谢。
答案 0 :(得分:0)
使用index
检查indArr
中是否存在indexOf
。如果是这样,则将值相乘并返回,否则返回值
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);