Javascript 合并两个对象,然后过滤不起作用
我有两个目标如下。调用筛选器方法对单个对象有效,但对合并对象无效Javascript 合并两个对象,然后过滤不起作用,javascript,angular,typescript,Javascript,Angular,Typescript,我有两个目标如下。调用筛选器方法对单个对象有效,但对合并对象无效 export class ClassName { public static urlsA = [ { url: '/url1', roles: ['Admin', 'User'] } , { url: '/url2', roles: ['Admin', 'Sale'] } , ]; public static urlsB = [ { url: '/url11', roles: ['Admin'
export class ClassName {
public static urlsA = [
{ url: '/url1', roles: ['Admin', 'User'] } ,
{ url: '/url2', roles: ['Admin', 'Sale'] } ,
];
public static urlsB = [
{ url: '/url11', roles: ['Admin', 'User'] } ,
{ url: '/url22', roles: ['Admin', 'Sale'] } ,
];
public static urls = { ...ClassName.urlA, ...ClassName.urlB };
}
我在下面的另一个类中使用上述代码
const a = ClassName.urls.filter(f => f.url === 'requiredURL')[0]; // throws Classname.urls.filter is not a function
const a = ClassName.urlsA.filter(f => f.url === 'requiredURL')[0]; // Working...
console.error(a);
console.error(ClassName.urls); // showing in console.
Filter是一种可用于数组的not对象的方法,它可以扩展到数组中而不是对象中 改变这个
public static urls = { ...ClassName.urlA, ...ClassName.urlB };
对此
public static urls = [ ...ClassName.urlA, ...ClassName.urlB ];
您正在对象中解构,它应该是
[…ClassName.urlA,…ClassName.urlB]
公共静态URL=[…this.urlA,…this.urlB]代码>因为您在同一个类中使用它,如果在另一个类中使用它,那么公共静态URL=[…ClassName.urlA,…ClassName.urlB]代码>