Javascript 将数组元素乘以3个加权因子,然后重复
我希望能够将每个数组元素乘以3个不同的权重因子 用户输入=Javascript 将数组元素乘以3个加权因子,然后重复,javascript,arrays,for-loop,Javascript,Arrays,For Loop,我希望能够将每个数组元素乘以3个不同的权重因子 用户输入=[24,3,0,56,43,34] 输出=24x7,3x3,0x1+56x7,43x3,34x0。。基本上在数组的每3个元素上重复一次,乘以7,再乘以3,再乘以0 它看起来像这样: 对于每个数组元素,乘以每个数组权重因子,并在到达第三个元素时重复 function multiplyWeightFact(input){ const weighting = [7,3,1] for (let i = 0; i < input.l
[24,3,0,56,43,34]
输出=24x7,3x3,0x1+56x7,43x3,34x0
。。基本上在数组的每3个元素上重复一次,乘以7,再乘以3,再乘以0
它看起来像这样:
对于每个数组元素,乘以每个数组权重因子,并在到达第三个元素时重复
function multiplyWeightFact(input){
const weighting = [7,3,1]
for (let i = 0; i < input.length ; i++) {
console.log( input[0] * weighting[0])
console.log( input[1] * weighting[1])
console.log( input[3] * weighting[2])
break
}
for (let index = 0; index < input.length; index++) {
console.log( input[4] * weighting[0])
console.log( input[5] * weighting[1])
console.log( input[6] * weighting[2])
break
}
}
函数多重权重法(输入){
常量权重=[7,3,1]
for(设i=0;i
用户输入=[24,3,0,56,43,34]
如果我们有一个包含100个数字的数组,它将继续
输出需要类似于:
resultOutput=374,输入为[24,10]
当然,上述函数是不可持续的,因此有没有更好的方法来实现这一点?您可以循环数组元素,并使用模运算符根据正确因子的位置进行乘法 模解释
计算余数
const weighting = [7, 3, 1] // Instead of 3 weighting.length
1. 0 % 3 = 0 = Array Element = 7
2. 1 % 3 = 1 = Array Element = 3
3. 2 % 3 = 2 = Array Element = 1
4. 3 % 3 = 0 = Array Element = 7
And again ...
函数多重权重法(输入){
常量权重=[7,3,1]
for(让index=0;index log(multiplyWeightFact(输入))代码>您可以循环遍历数组元素,并使用模运算符根据正确因子的位置进行乘法
模解释
计算余数
const weighting = [7, 3, 1] // Instead of 3 weighting.length
1. 0 % 3 = 0 = Array Element = 7
2. 1 % 3 = 1 = Array Element = 3
3. 2 % 3 = 2 = Array Element = 1
4. 3 % 3 = 0 = Array Element = 7
And again ...
函数多重权重法(输入){
常量权重=[7,3,1]
for(让index=0;index log(multiplyWeightFact(输入))
您可以通过使用长度为加权的索引和余数运算符进行映射
const
multilyby=加权=>(v,i)=>v*加权[i%加权.length],
数组=[24,3,0,56,43,34],
权重=[7,3,1],
结果=array.map(乘以(加权));
console.log(…结果)
您可以通过使用长度为加权的索引和余数运算符进行映射
const
multilyby=加权=>(v,i)=>v*加权[i%加权.length],
数组=[24,3,0,56,43,34],
权重=[7,3,1],
结果=array.map(乘以(加权));
console.log(…结果)代码>您可以在输入的基础上,根据其索引将其乘以权重。然后,我们可以使用将索引保持在权重数组的范围内
函数多重权重法(输入,权重){
返回input.map((num,index)=>num*weight[index%weight.length]);
}
常数权重=[7,3,0];
常量输入=[24,3,0,56,43,34];
常量结果=多重权重(输入,权重);
控制台日志(结果)代码>您可以在输入的基础上,根据其索引将其乘以权重。然后,我们可以使用将索引保持在权重数组的范围内
函数多重权重法(输入,权重){
返回input.map((num,index)=>num*weight[index%weight.length]);
}
常数权重=[7,3,0];
常量输入=[24,3,0,56,43,34];
常量结果=多重权重(输入,权重);
控制台日志(结果)代码>您想要什么输出?输出=24x7,3x3,0x1+56x7,43x3,34x0(这些都是示例数字,但基本上数组中由元素0开始的每个元素都必须乘以7,然后乘以3,然后乘以0,再加上数组中接下来的3个元素,这些元素再次乘以7,然后乘以3,然后乘以0,并在重复模式3elementsxweightingfactor7,3,1中继续-因此输出是这些元素乘以weighti的总和ng重复模式中的因素您还没有真正回答这个问题。输入=[24,3,0,56,43,34];权重=[7,3,1]
?它是您的注释中的字符串吗(24x7,3x3,0x1+56x7,43x3,34x0
)或者它是一个带有数字的数组?那么它们应该遵循什么规则?或者它是一个单一的数字(数学运算的结果)?->当输入为[24,10]时,看起来像一个数字-resultOutput=374请将此添加到您的问题中。您可以看到到目前为止的所有答案,因此不要返回预期结果,因为您在问题中没有提到它。您想要什么输出?输出=24x7,3x3,0x1+56x7,43x3,34x0(这些都是示例数字,但基本上数组中由元素0开始的每个元素都必须乘以7,然后乘以3,然后乘以0,再加上数组中接下来的3个元素,这些元素再次乘以7,然后乘以3,然后乘以0,并在重复模式3elementsxweightingfactor7,3,1中继续-因此输出是这些元素乘以weighti的总和ng重复模式中的因素您还没有真正回答这个问题。输入=[24,3,0,56,43,34];权重=[7,3,1]
?它是您的注释中的字符串吗(24x7,3x3,0x1+56x7,43x3,34x0
)?或者它是一个带有数字的数组?那么它们应该遵循什么规则?或者它是一个单一的数字(数学运算的结果)?->当输入为[24,10]时,看起来像一个数字-resultOutput=374。请将此添加到您的问题中。因为您可以看到到目前为止的所有答案都不会返回预期结果,因为您在问题中没有提到它。