2016-09-14 47 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);' –