是否可以以某种方式将参数传递给对象?
类似于,
const messages = (str1, str2){
1: `${str1} is not the same as ${str2}`,
2: 'message2',
3: 'message3',
4: 'message4',
5: 'message5',
6: 'message6',
}
const validateInput = ({ str1 = '', str2 = '' }) => {
if (str1 !== str2) {
console.log(messages[1](str1, str2))
}
}
validateInput('a', 'b')
我不是在寻找类似的东西,
const message = (str1, str2) => `${str1} is not the same as ${str2}`
我很想知道这是否可以专门用一个对象来完成。
最佳答案
您可以为所有消息和内部函数获取一个对象,该对象返回带有消息的字符串,具体取决于移交的字符串。
const messages = {
1: (str1, str2) => `${str1} is not the same as ${str2}`,
2: (str1, str2) => 'message2',
3: (str1, str2) => 'message3',
4: (str1, str2) => 'message4',
5: (str1, str2) => 'message5',
6: (str1, str2) => 'message6',
};
const validateInput = (str1 = '', str2 = '') => {
if (str1 !== str2) {
console.log(messages[1](str1, str2))
}
}
validateInput('a', 'b');
如果你先调换调用messages
的顺序(先带参数,再按数字),那么只需要一个函数。
const messages = (str1, str2) => ({
1: `${str1} is not the same as ${str2}`,
2: 'message2',
3: 'message3',
4: 'message4',
5: 'message5',
6: 'message6',
});
const validateInput = (str1 = '', str2 = '') => {
if (str1 !== str2) {
console.log(messages(str1, str2)[1])
}
}
validateInput('a', 'b');
关于javascript - 将动态字符串传递给对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60222779/