2016-07-08 69 views
1

我有一個具有多個值的單個數組,如下面的代碼所示。從單個數組中的多個值中查找單個值

tempstraindatasource 

tempstraindatasource[0] = { 
A = "0", 
B = "1", 
C = "2", 
D = "3" 
} 

tempstraindatasource[1] = { 
A = "4", 
B = "5", 
C = "6", 
D = "7" 

等一樣聰明我在單個陣列 }存在許多數據

我想要做的是找到數據包括或不單行像我想找到具有物種一個過程名稱「A」=「0」或任何值「B」=「0」或「C」=「0」!我怎樣才能做到單線?請有人幫我做到這一點。

在此先感謝,也很感謝。

+6

能否請您替換代碼的形象呢?人們嘗試重建複製和粘貼代碼的問題比從圖像中讀取更容易。 – Tushar

+5

_請有人幫我做到這一點很緊急._當然,我們來幫你。但是,您應該首先看到** [問] **和** [mcve] ** – Tushar

+0

請添加您想要搜索的內容以及想要的結果。 –

回答

1

您可以使用Array#forEach的陣列和檢查是否有任何的屬性具有值,您需要Array#some,然後將索引推送到結果數組。

var data = [{ a: 0, b: 1, c: 2, d: 3 }, { a: 4, b: 5, c: 6, d: 7 }], 
 
    indices = []; 
 

 
data.forEach(function (a, i) { 
 
    Object.keys(a).some(function (k) { 
 
     return a[k] === 0; 
 
    }) && indices.push(i); 
 
}); 
 

 
console.log(indices);

+0

我可以像索引[k] .index那樣得到索引嗎? –

+0

不,沒有原始值的屬性。 –

+1

哦,明白了,並且非常感謝@NinaScholz對於這樣一個真棒邏輯幫助我很多。 –

1

正如評論指出你的問題需要編輯(或更好地完全重寫),但我認爲你需要的是這個

var fruits = [{name: 'banana', cost: 5}, {name: 'apple', cost:2}]; 
 

 
var filteredArray = fruits.map(function(fruit, index){ 
 
    fruit.index = index; 
 
    return fruit; 
 
}).filter(function(fruit){ 
 
    return fruit.name === 'banana'; 
 
}); 
 

 
document.write(JSON.stringify(filteredArray));

+0

是的,這是我想要的,但我需要該數組的索引我可以得到它嗎?如果可以索引,請更新代碼片段。 –

+0

我更新了我的回答 – Almis

+0

謝謝@Almis非常感謝你的讚賞,但我已經從NinaScholz那裏得到了感謝,因爲你花了你的寶貴時間。 –