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

您还应该添加值的格式,如下所示:


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:* 函数不是这里的问题,我有一些错误,但我肯定能够自己修复它,我希望能够根据键本身从对象中检索一个值。


阿波罗的战车
浏览 163回答 1
1回答

米琪卡哇伊

首先,我建议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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript