3 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超8個(gè)贊
另一種替代解決方案是使用Array.prototype.reduce():
["Nano","Volvo","BMW","Nano","VW","Nano"].reduce(function(a, e, i) {
if (e === 'Nano')
a.push(i);
return a;
}, []); // [0, 3, 5]
注意:請(qǐng)檢查瀏覽器兼容性以獲取reduce方法,并在需要時(shí)使用polyfill。

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以使用map和編寫一個(gè)簡(jiǎn)單易讀的解決方案filter:
const nanoIndexes = Cars
.map((car, i) => car === 'Nano' ? i : -1)
.filter(index => index !== -1);
編輯:如果您不需要支持IE / Edge(或正在轉(zhuǎn)譯您的代碼),則ES2019給了我們flatMap,它使您可以在一個(gè)簡(jiǎn)單的方法中做到這一點(diǎn):
const nanoIndexes = Cars.flatMap((car, i) => car === 'Nano' ? i : []);
添加回答
舉報(bào)