JavaScript数组没有正确索引?

JavaScript数组没有正确索引?,javascript,arrays,dictionary,Javascript,Arrays,Dictionary,标签可以正确地迭代A、B、C、D。但是标签2被压缩为0、1、2、3,我不知道为什么。就在return labels.map调用之前,如果I console.log,我可以得到要输出的正确分数,但是在那之后,这些值消失了,我不知道为什么 给回调的第二个参数是迭代中元素的索引 看起来你想要的是什么 var graphdata = [["A", "B", "C", "D"], [0.5, 0.25, 0.5, 0.25]]; function randomData (){ var label

标签可以正确地迭代A、B、C、D。但是标签2被压缩为0、1、2、3,我不知道为什么。就在return labels.map调用之前,如果I console.log,我可以得到要输出的正确分数,但是在那之后,这些值消失了,我不知道为什么

给回调的第二个参数是迭代中元素的索引

看起来你想要的是什么

var graphdata = [["A", "B", "C", "D"], [0.5, 0.25, 0.5, 0.25]];

function randomData (){
    var labels = graphdata[0]
    var labels2 = graphdata[1];
    console.log();
    return labels.map(function(labels, labels2){
        console.log(labels2);
        return { label: labels , value: labels2 }
    });
}
地图不是这样的

映射的第二个参数是它当前正在查看的元素的索引。因此,每次通过它将第一个参数标签设置为元素,从当前正在将集合标签2映射到标签索引的标签


这里有更多信息:

请阅读地图文档。对map函数的回调采用两个参数,第一个参数是列表中要迭代的每个项,第二个参数是列表中该项的索引或键。映射回调中的labels2变量不是指您创建的变量,而是指映射项的索引。您的实现可以编写如下,并且应该是相同的

return labels.map(function(label, i){
    return { label: label , value: labels2[i] }
});
使用当前元素、当前索引可选和原始数组可选的参数进行回调

randomArray.mapfunctioncurrentElement,currentIndex,randomArrayAgain{/*…*/}

你可以做:

labels.map(function(eachLabel, key) {
    console.log(key); // 0, 1, 2, 3... (label.length - 1)
    return { label: eachLabel , value: key }
  });
解释
map将在标签上迭代,在每次迭代中,您都可以访问当前标签和索引。此解决方案仅在阵列排序正确时有效。

您指的是文档,而不是实现
labels.map(function(label, index) {
    return { label: label, value: labels2[index] }
});