2016-09-14 32 views
-4

非常接近但比this question复杂一点我有一个多列数组,我想获得第一个出现的数组的索引此数组的给定列中的值。JavaScript在数组列中找到值的索引(从csv中用papaparse读取)

我的数组有几列整数和文本,并有一个整数的列(我用这条指令调用wup[i].idid

[编辑]的阵列来自于读取与头csv文件与papaparse

wup = ["id", "cityName", etc ... ] 
     [20002, "Tokyo", etc ... ] 
     [20003, "Goiânia", etc ... ] 

这是只是我想找到的输入值,并最终获得该输入值的该指数id列。这肯定是使用indexOf,但是如何将搜索的焦点仅限于id列?

[编辑]失败是指令下(试图找到阵列wuptn[iter].idOri发生,我希望在变量iOri检索):

var iOri = wup.indexOf(tn[iter].idOri); 

希望能是足够清晰。

+0

请添加一个数组的例子,想要的项目和所需的结果。请添加一些代码,你试过了。 –

+0

Off topic:Array中没有'column',与以下内容相同:不能在Array内定义一个列。 –

+0

考虑到我对JavaScript的理解不够,我尽我所能添加了一些代码并尽可能精确。在我看来,这个表格有标题栏。 –

回答

1

有很多方法可以做到这一点,倒映射您的阵列到IDS的平面阵列:

var myId = 3; 
var ids = array.map(function(obj) { 
    return obj.id; 
}); 
var index = ids.indexOf(myId); 

一个更简洁(更好 - 因为它只需要一个迭代)方法是使用Array.findIndex

var myId = 3; 
var index = array.findIndex(function(obj) { 
    return obj.id === myId; 
}); 

随着ES6:

var myId = 3; 
var index = array.map(obj => obj.id).indexOf(myId); 

var myId = 3; 
var index = array.findIndex(obj => obj.id === myId); 
+0

我提供了在我的情况下工作的指令,从由罗布提出的第三溶液得到:'VAR IORI = wup.map(OBJ => obj.CityCode).indexOf(TN [ITER] .idOri);' –