所以我正在處理一個看起來有點像這樣的物件:
{
examples: [
{ key: 'value1' },
{ key: 'value1' },
{ key: 'value1' },
{ key: 'value2' },
{ key: 'value2' },
{ key: 'value2' }
]
}
如您所見,這些值是有序的。我正在嘗試找到 value2 的位置,并且我確信有一種比我目前正在做的更有效的方法,因為實際物件要大得多,因此需要一些時間才能達到 value2。這是我創建的函式:
function getValue2 (obj, num) {
if (obj.examples[num] = "value2"){
console.log(obj.examples[num]);
}
else {
getValue2(obj, num 1);
};
};
var x = JSON.parse(obj);
getValue2(x, 0);
先感謝您!:)
uj5u.com熱心網友回復:
您可以使用Array#find:
回傳提供的陣列中滿足提供的測驗函式的第一個元素的值。如果沒有值滿足測驗函式,則回傳 undefined。
const data = {
examples: [ { key: 'value1' }, { key: 'value1' }, { key: 'value1' }, { key: 'value2' }, { key: 'value2' }, { key: 'value2' } ]
};
const res = data.examples.find(({ key }) => key === 'value2');
console.log(res);
要獲取第一次出現的索引,您可以使用Array#findIndex:
回傳陣列中滿足提供的測驗函式的第一個元素的索引。否則回傳-1,表示沒有元素通過測驗。
const data = {
examples: [ { key: 'value1' }, { key: 'value1' }, { key: 'value1' }, { key: 'value2' }, { key: 'value2' }, { key: 'value2' } ]
};
const index = data.examples.findIndex(({ key }) => key === 'value2');
console.log(index);
uj5u.com熱心網友回復:
如何使用Object.values,像這樣:
function getValue2(obj){
return Object.values(obj.examples).find(e => e === 'value2')
}
uj5u.com熱心網友回復:
我看到的第一個問題是您使用單個 equals=來檢查應該是==or時的相等性===。
至于運行類似函式的替代方法,我建議您查找并了解for和while回圈,因為它們對 JS 至關重要。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/353740.html
標籤:javascript 节点.js json
上一篇:在CSV列中減去兩個日期時間
