根据对象名称过滤对象数组

时间:2019-09-23 17:59:10

标签: javascript arrays filter

我正在尝试使用array.filter()过滤对象名称上的对象数组。

我尝试使用array.constructor.name失败。

var temp = ({ 
en: {
    id: `${scope}.en`,
    defaultMessage: 'English',
  },
  es: {
    id: `${scope}.es`,
    defaultMessage: 'Spanish',
  },
  ar: {
    id: `${scope}.ar`,
    defaultMessage: 'Arabic',
  },
});

var selectedObj = temp.filter(msg => msg.constructor.name === 'en');

1 个答案:

答案 0 :(得分:1)

array.filter函数仅适用于数组。 Temp变量不是数组,而是一个对象。数组将包含在方括号[]

对我来说,您目前的工作还不是很清楚,但是如果您的目标是简单地将“ en”对象分配给selectedObj变量,那么我相信以下方法会起作用:

var selectedObj = temp.en;

如果您有一个包含字符串“ en”的变量,那么您可以尝试:

var code = 'en';
var selectedObj = temp[code];