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

标签 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, 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 开始工作:

http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_foreach

我的 fiddle 示例:https://jsfiddle.net/53p5b3w8/5/

最佳答案

你很接近,只需将 item 替换为 index

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] });   
});

基本上,当您说 A[item] 时,它采用 values(1,2,3,4) 而不是 index (0,1,2,3 ).

演示

var A = [1, 2, 3, 4]; var B = [7, 8, 9, 19];
var myData = [];
A.forEach( function (item, index) {   
       myData.push( { x: item, y: B[index] });   
});
document.body.innerHTML += JSON.stringify( myData, 0, 4 )

关于Javascript:foreach 跳过第一个索引 (0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37188364/

相关文章:

javascript - Phonegap 页面在警报后再次加载 (Android)

javascript - 如何在激活另一个元素时关闭一个元素?

java - 需要 java.util.ArrayList<String>,找到 java.lang.Object : I do not understand the reason for this error

java - 在 Java 8 中迭代 map 时使用 ForEach 提取多行 Lambda 表达式

loops - 如何在csh中为foreach添加循环计数器

javascript - Jquery Masked Input 插件允许点

javascript - 无法更改正文背景

javascript - 我如何使用下拉列表根据其 DateTransaction 对其进行排序?

php - 显示日期组中的数据库值

c# - 如何从 ObservableCollection 中删除项目?