有人可以描述[this.props.currency]放置在返回对象之后的目的,还是我可以阅读的关于此模式的地方,因为我之前从未见过。
我不是在问this.props.currency是什么,而是它在返回对象之后的目的。
在此博客文章中看到: https://javascriptplayground.com/react-extracting-logic/
export const getCurrencyData = currency => {
return {
GBP: { base: 100, symbol: '£' },
USD: { base: 100, symbol: '$' },
}[this.props.currency];
};
答案 0 :(得分:1)
它所做的就是用键this.props.currency
获取属性的值-因此,如果currency
是"GBP"
,则返回的值是{ base: 100, symbol: "£" }
。您可以这样写,使其更清晰:
export const getCurrencyData = currency => {
const obj = {
GBP: { base: 100, symbol: '£' },
USD: { base: 100, symbol: '$' }
};
return obj[this.props.currency];
};
您还可以利用带有箭头功能的显式返回功能来删除return
关键字:
export const getCurrencyData = currency => ({
GBP: { base: 100, symbol: '£' },
USD: { base: 100, symbol: '$' },
}[this.props.currency]);
答案 1 :(得分:0)
货币是要查找的对象部分的关键。
您可以将其重写为:
function getCurrencyData(currency) {
const allAvailableData = {
GBP: { base: 100, symbol: '£' },
USD: { base: 100, symbol: '$' },
}
return allAvailableData[currency]
}
console.log(getCurrencyData('GBP'))
// { base: 100, symbol: '£' }
console.log(getCurrencyData('USD'))
// { base: 100, symbol: '$' }