gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 14:14:31 25 4
gpt4 key购买 nike

我正在尝试构建一个对象,它接受任何值(最好是 int)作为键,它使用函数生成键的值,该函数有一个字典,用于将每个单独的数字映射到一个数字另一种语言。基本上,我传递一个英文数字作为键,并希望检索它对应的不同语言的值。

例如,假设有一个对象numbers,其唯一的键是动态的,并且该键将使用函数进行转换以生成对象中该键的值。

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

最佳答案

首先,我建议在函数外部设置 dict :

const dict = {
1: "١",
2: "٢",
3: "٣",
4: "٤",
5: "٥",
6: "٦",
7: "٧",
8: "٨",
9: "٩"
}

然后,正如已经告诉过的,您应该将字符串拆分为字符以获得它们的数组,然后您可以循环该数组。之后,您应该使用 join 将所有结果收集到一个字符串中。函数就像下一个一样简单:

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

最后,我建议使用正则表达式来检查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)

关于javascript - 使用key在javascript对象中生成其对应的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58113266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com