基于JSON文件中的键值对转换JavaScript数组



我正试图创建一个系统来标记我的应用程序的不当评论。

我有一个系统可以将整个注释转换为字符串数组,但我想创建一个JavaScript函数,根据JSON中的键值对将所有这些数组项转换为数值。如果找不到与单词匹配的键,则应将其替换为0。

最终数组中的所有值都将相加,以获得注释分数。

下面是一个启动数组的例子:

["Bad", "reallyBad", "Good", "Neutral", "Good"]

我想将其与JSON key:value对象进行比较,例如:

{
"reallyBad": -10,
"Bad": -5,
"Good": 5,
"reallyGood": 10
}

根据键值对,新数组应该是这样的:

[-5, -10, 5, 0, 5]

当基于键:值对转换字符串时,有人知道从哪里开始吗?

任何帮助都将不胜感激。

您可以在数组上使用.map()对数组中的每个项执行函数,并为此返回一些内容。因此,取数组中的每个字符串,并将其用作从ratings对象中获取值的键。

const array = ["Bad", "reallyBad", "Good", "Neutral", "Good"];
const ratings = {
"reallyBad": -10,
"Bad": -5,
"Good": 5,
"reallyGood": 10
};
const ratingsArray = array.map(item => ratings[item] || 0);
console.log(ratingsArray);

只需映射对象的值,或者为Neutral取一个默认值。

var array = ["Bad", "reallyBad", "Good", "Neutral", "Good"],
weights = { reallyBad: -10, Bad: -5, Good: 5, reallyGood: 10 },
result = array.map(w => weights[w] || 0);

console.log(result);

您可以简单地使用Array.map()

尝试以下操作:

var arr = ["Bad", "reallyBad", "Good", "Neutral", "Good"];
var obj = {
"reallyBad": -10,
"Bad": -5,
"Good": 5,
"reallyGood": 10
};
var result= arr.map((a)=> obj[a] || 0);
console.log(result);

最新更新