Javascript ES6中分配变量的Cleaner方法
我有以下代码Javascript ES6中分配变量的Cleaner方法,javascript,arrays,object,ecmascript-6,Javascript,Arrays,Object,Ecmascript 6,我有以下代码 const lower = U => U.toLowerCase(); const A = lower('A') const B = lower('B') const C = lower('C') const D = lower('D') ... 我如何表示这是一种更干净的方式?可以保证传递给函数的变量名和参数相同 我能想到的一个可能的解决办法是 const [ A, B, C, D ] = ['A', 'B', 'C', 'D'].map(lower) 有
const lower = U => U.toLowerCase();
const A = lower('A')
const B = lower('B')
const C = lower('C')
const D = lower('D')
...
我如何表示这是一种更干净的方式?可以保证传递给函数的变量名和参数相同
我能想到的一个可能的解决办法是
const [ A, B, C, D ] = ['A', 'B', 'C', 'D'].map(lower)
有没有不重复的解决方案?您可以使用以前的变量名作为键的对象。它易于维护和迭代
const lower=U=>U.toLowerCase(),
对象={};
forEach(C=>object[C]=lower(C));
console.log(对象)代码>这对我来说是一个“非常”有趣的问题,它帮助我理解了JavaScript中更深层次的东西(虽然不是完全理解)。好吧,长话短说,你可以这样做
var f=String.prototype.toLowerCase,
r=[];
r=[“A”、“B”、“C”、“D”].map(f.call,f);
控制台日志(r)代码>那么,您是否试图以优雅的方式获取所有小写字母?为什么会出现问题?当前的实现有什么问题?为什么还需要变量?你就不能继续锁链,做你需要的吗?动态变量不好…当我需要添加另一个变量时,我需要做两个更改。我需要一个使用国际化的用例。例如,const ERROR_MSG=chrome.i18n.getMessage('ERROR_MSG')为什么不使用具有前一个变量名的对象作为键呢。它很容易维护和迭代。为什么?因为调用
,就像其他任何方法一样,当您传递它时,它只是一个未绑定的函数。@Bergi很棒。。与r=[“A”、“B”、“C”、“D”].map(Function.call、String.prototype.toLowerCase)没有什么不同代码>谢谢。