我正在尝试使用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');
答案 0 :(得分:1)
array.filter函数仅适用于数组。 Temp变量不是数组,而是一个对象。数组将包含在方括号[]
中对我来说,您目前的工作还不是很清楚,但是如果您的目标是简单地将“ en”对象分配给selectedObj变量,那么我相信以下方法会起作用:
var selectedObj = temp.en;
如果您有一个包含字符串“ en”的变量,那么您可以尝试:
var code = 'en';
var selectedObj = temp[code];