javascript - 如何过滤对象中特定键对应的值?

标签 javascript arrays object ecmascript-6

我需要按类别分离对象中的值,这可以从对象的键名称中看出。以下是该对象的部分外观:

const values = {
        RM1: 'Rarely',
        RM2: 'Often',
        RM3: 'Sometimes',
        RM4: 'Consistently',
        CM1: 'Rarely',
        CM2: 'Never',
        CM3: 'Sometimes',
        CM4: 'Sometimes',
        CO1: 'Often',
        CO2: 'Often',
        CO3: 'Often',
        CO4: 'Sometimes'
}

类别是 RM、CM、CO 等。我写了一个函数来过滤类别(answers 是一个更大的对象,values 是其中的一部分):

const categorizeAnswers = (answers) =>{
  const valueNames = Object.keys(answers.values);
  const values = Object.values(answers.values);
  const getCategoryList = category => valueNames.filter(value => {
    return value.includes(category);
  })
  const RM = getCategoryList("RM");
  const CM = getCategoryList("CM");
  const CO = getCategoryList("CO");
}

但现在我不确定如何获取与这些类别对应的值。所以对于 RM,我想要一个类似这样的数组:['Rarely', 'Often', 'Sometimes', 'Consistently']。其他类别也是如此。

有什么想法吗?我觉得这真的很简单,我遗漏了一些明显的东西。

最佳答案

您可以简单地在类别数组上使用 map 来获取它们在数组中的值,如下所示:

const RM = getCategoryList("RM").map((key) => answers.values[key]);

关于javascript - 如何过滤对象中特定键对应的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48899945/

相关文章:

javascript - 如何将 javascript 变量放入 url() 函数中?

arrays - 从 array1 读取 从 array2 写入

arrays - jq 输出空字符串时 bash readarray -t 数组赋值的问题

对象的 Javascript 计数数组

javascript - CSS - 在淡入时去模糊图像

javascript - 比较 2 个数组并将缺失值推送到数组 - Javascript

java - 将 HTML 字符串传递给 jQuery 函数

php - 如何比较内部数组键和值并在 PHP 中相应地设置变量的值?

java - 在Java中打印一个对象得到的信息是什么意思?

java - 类对象比较 - equals 方法输出错误