为了账号安全,请及时绑定邮箱和手机立即绑定

使用key在javascript对象中生成其对应的值

使用key在javascript对象中生成其对应的值

阿波罗的战车 2021-10-29 16:57:05
您还应该添加值的格式,如下所示:let date = "15:00";let m = moment(date, 'HH:mm').toISOString();console.log(m);因为您需要这样的东西2019-09-26T15:00:00.000Z,所以最好使用该toISOString函数,而不是format.我正在尝试构建一个对象,它接受任何值(最好是 int)作为键,它使用一个函数生成键的值,该函数具有一个字典,用于将每个单独的数字映射到另一种语言的数字。基本上,我传递一个英文数字作为键,并希望检索它的不同语言的相应值。例如,假设有一个对象编号,它的唯一键是动态的,并且将使用函数转换该键以生成对象中该键的值。numbers = {    [number]: convertNumber(number)}const convertNumber = (number) => {     let dict = {        1: '١',        2: '٢',        3: '٣',        4: '٤',        5: '٥',        6: '٦',        7: '٧',        8: '٨',        9: '٩'    }    let newNumber = '';    number.toString().forEach(digit => {        newNumber = newNumber+dict[digit];    });    return newNumber;}预期输出: numbers[1234] = '١٢٣٤';但是这段代码不起作用,我在网上搜索了变量键名,但没有找到一种方法可以使用动态键值来转换它并获得不同的数字作为它的键的值。有没有办法使用 ES6 来实现这一点?* 编辑 1:* 函数不是这里的问题,我有一些错误,但我肯定能够自己修复它,我希望能够根据键本身从对象中检索一个值。
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

首先,我建议dict在你的函数之外设置:


const dict = {

    1: "١",

    2: "٢",

    3: "٣",

    4: "٤",

    5: "٥",

    6: "٦",

    7: "٧",

    8: "٨",

    9: "٩"

  }

然后,正如已经说过的,您应该split将字符串转换为字符以获取它们的数组,然后您可以遍历该数组。之后,您应该将所有结果收集到一个带有join. 一个函数就像下一个一样简单:


const convertNumber = number => {

    return number.toString().split("").map(digit => dict[digit]).join('');

};

最后,我建议使用它regular expressions来检查number它是否应该是。


const dict = {

        1: "١",

        2: "٢",

        3: "٣",

        4: "٤",

        5: "٥",

        6: "٦",

        7: "٧",

        8: "٨",

        9: "٩"

      }

      

const convertNumber = number => {

        return number.toString().split("").map(digit => dict[digit]).join('');

    };


const someNumbers = [123, 345, 334, 885];


const getNumberObject = arr => {

    return arr.reduce((acc, cur) => {

        acc[cur] = convertNumber(cur)

        return acc;

    }, {})

}


const numbers = getNumberObject(someNumbers)


console.log(numbers)


查看完整回答
反对 回复 2021-10-29
  • 1 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信