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