Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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数组?_Javascript - Fatal编程技术网

如果给定另外两个数组中的索引和值,如何生成新的JavaScript数组?

如果给定另外两个数组中的索引和值,如何生成新的JavaScript数组?,javascript,Javascript,我有两个数组,arr1=[1,2,7,9,10]和arr2=[40,50,70,80,30]。从这两个数组中,我有一个长度为15的零填充数组,我想使用arr1作为索引,使用arr2作为值来填充该数组:[0,40,50,0,0,0,0,0,0,70,0,80,30,0,0,0,0,0] 执行此操作的代码是什么?以下是解决方案: var arr1=[1,2,7,9,10];//如果要将array3的第一个元素替换为arr2元素,请将0添加到数组中 //如果您想要第一个元素,如示例中所示,这将是正确

我有两个数组,
arr1=[1,2,7,9,10]
arr2=[40,50,70,80,30]
。从这两个数组中,我有一个长度为15的零填充数组,我想使用
arr1
作为索引,使用
arr2
作为值来填充该数组:
[0,40,50,0,0,0,0,0,0,70,0,80,30,0,0,0,0,0]

执行此操作的代码是什么?

以下是解决方案:

var arr1=[1,2,7,9,10];//如果要将array3的第一个元素替换为arr2元素,请将0添加到数组中
//如果您想要第一个元素,如示例中所示,这将是正确的
//var arr1=[0,1,6,8,9];
var arr2=[40,50,70,80,30];
var arr3=[]//[40,50,0,0,0,0,70,0,80,30,0,0,0,0,0]
var arr3Length=15;
var arr2Counter=0;
对于(变量i=0;i控制台日志(arr3)这里有一种简洁的方法,可以在不使用任何for循环或if/else的情况下执行。首先创建一个具有0和适当长度的数组,然后填充插槽

const index=[1,2,7,9,10];//标准1
常量值=[40,50,70,80,30];//标准2
常数长度=15;//标准3
常量数组=新数组(长度)。填充(0);
forEach((idx,i)=>数组[idx]=值[i]);

log(array)
注意JavaScript对数组使用基于零的索引;因此,您的第一个非零值--
40
–将位于索引
0
而不是
1
。你做了什么来尝试自己解决这个问题?你的解决方案哪里出了问题?以什么方式出了问题?谢谢David。我真的希望保持我给出的示例中的定位方式(这是我正在处理的数据格式),从arr1映射中的第一个元素到arr2中的第一个元素。虽然我知道Js数组从0开始,但这不适用于我正在处理的数据。我以前一直在Excel宏上生成它,现在我想在Js上实现它。感谢您只需将行
arr1.includes(i)
更改为
arr1.includes(i+1)
,就这样…我真的希望从表单1开始,我只想保持arr1到arr2的映射,就像示例中那样,这意味着我不希望0从arr3开始。这就是我正在处理的数据的格式。我已经更新了我的答案,也包括了这个案例