Javascript:foreach跳过第一个索引(0)

Javascript:foreach跳过第一个索引(0),javascript,foreach,Javascript,Foreach,一个有点偏颇的问题,我没能弄明白 我想从两个数组中生成一个对象,并为它们提供键,如下所示: var A = [1, 2, 3, 4]; var B = [7, 8, 9, 19]; [ { "x": 1, "y": 7 }, { "x": 2, "y": 8 }, { "x": 3, "y": 9 }, { "x": 4, "y": 19 } ] 我编写了以下代码: var myData = []; var A = [1, 2, 3, 4]; var B = [7, 8, 9,

一个有点偏颇的问题,我没能弄明白

我想从两个数组中生成一个对象,并为它们提供键,如下所示:

 var A = [1, 2, 3, 4]; var B = [7, 8, 9, 19];

 [ { "x": 1, "y": 7 }, { "x": 2, "y": 8 }, { "x": 3, "y": 9 }, { "x":
     4, "y": 19 } ]
我编写了以下代码:

var myData = []; var A = [1, 2, 3, 4]; var B = [7, 8, 9, 19];

A.forEach( function (item, index) {     
myData.push( { x: A[item], y: B[item] });   
});
但是它的输出是

[ { "x": 2, "y": 8 }, { "x": 3, "y": 9 }, { "x": 4, "y": 19 }, {} ]
通过在函数中加入[item-1],它可以按我所希望的方式工作,但我不明白为什么我所看到的w3School示例看起来非常简单,可以从索引-0开始工作:


我的小提琴示例:

你很接近了,只需将
项目
替换为
索引

A.forEach( function (item, index) {   
   myData.push( { x: A[index], y: B[index] });   
});
或者干脆

A.forEach( function (item, index) {   
   myData.push( { x: item, y: B[index] });   
});
基本上,当你说一个[项目]时,它采用
值(1,2,3,4),而不是
索引(0,1,2,3)

演示

var A=[1,2,3,4];VarB=[7,8,9,19];
var myData=[];
A.forEach(函数(项,索引){
push({x:item,y:B[index]});
});

document.body.innerHTML+=JSON.stringify(myData,0,4)
在循环中迭代数组中的值而不是需要引用的索引时,尝试使用
索引
而不是

A.forEach( function (item, index) {     
    myData.push( { x: A[index], y: B[index] });   
});
示例

var myData=[];
变量A=[1,2,3,4];
VarB=[7,8,9,19];
A.forEach(功能(项目、索引){
myData.push({
x:A[项目-1],
y:B[项目-1]
});
});
console.log(myData);
document.getElementById(“demo”).innerHTML=JSON.stringify(myData,null,3);
var myData=[];
变量A=[1,2,3,4];
VarB=[7,8,9,19];
A.forEach(功能(项目、索引){
myData.push({
x:A[项目],
y:B[项目]
});
});
console.log(myData);
document.getElementById(“demo2”).innerHTML=JSON.stringify(myData,null,3)


这就是您需要的:

var c = A.map((item, index) => ({x: A[index], y: B[index}));

请注意,如果
myData
只包含两个组合的数组,也可以使用map:

var myData = A.map(function(item, index) {
  return { x: item, y: B[index] };
});

数组索引将从0开始

            A.forEach( function (item, index) {     
                myData.push( { x: A[index], y: B[index] });   
            });
如果您对订单使用数组,则可以通过以下方法不使用该数组

            B.forEach( function (item, index) {     
                myData.push( { x: index+1, y: B[index] });   
            });