Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组元素乘以3个加权因子,然后重复_Javascript_Arrays_For Loop - Fatal编程技术网

Javascript 将数组元素乘以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

我希望能够将每个数组元素乘以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.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;indexlog(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;indexlog(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。请将此添加到您的问题中。因为您可以看到到目前为止的所有答案都不会返回预期结果,因为您在问题中没有提到它。