Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过使用“属性名称”将属性名称检查到对象数组,从而从对象中指定值_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 如何通过使用“属性名称”将属性名称检查到对象数组,从而从对象中指定值

Javascript 如何通过使用“属性名称”将属性名称检查到对象数组,从而从对象中指定值,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个对象数组,它在对象数组名“tabList”中有“modulePermissions”属性名。我有一个对象作为“moduleName”,它包含与“modulePermissions”名称相同的值,该布尔值已被赋值。 所以现在,对于“tabList”我们需要检查“modulePermissions”值,如果“modulePermissions”值与moduleName属性名称匹配,那么moduleName`属性的布尔值将作为值分配给“tabList”“enableTabs” Ts: 我试着用

我有一个对象数组,它在对象数组名
“tabList”
中有
“modulePermissions”
属性名。我有一个对象作为
“moduleName”
,它包含与
“modulePermissions”
名称相同的值,该布尔值已被赋值。 所以现在,对于
“tabList”
我们需要检查“modulePermissions”值,如果“modulePermissions”值与
moduleName
属性名称匹配,那么moduleName`属性的布尔值将作为值分配给“tabList”“enableTabs”

Ts:

我试着用这样的方法:

getValue(){
   for (let i = 0; i < 16; i++) {
                this.tabList[i]['modulePermissions'] == userPermissions.moduleName.this.tabList[i]['modulePermissions'];
                this.tabList[i]['enableTabs'] = userPermissions.moduleName.this.tabList[i]['modulePermissions']
              }
}
getValue(){
for(设i=0;i<16;i++){
this.tabList[i]['modulePermissions']==userPermissions.moduleName.this.tabList[i]['modulePermissions'];
this.tabList[i]['enabletab']=userPermissions.moduleName.this.tabList[i]['modulePermissions']
}
}

我将这样做:

for ( let i = 0; i < tabList.length; i++ ) {
    let module = tabList[i];
    if(moduleName[module.modulePermissions] !== undefined ){
        module.enableTabs = moduleName[module.modulePermissions];
    }
}
for(设i=0;i
您可以使用
Array.prototype.map
()迭代tabList

Object.prototype.hasOwnProperty
()检查给定属性是否存在

像这样的方法应该会奏效:

const getModifiedTabList = () => {
    return tabList.map((tabListEntry) => {
        if (Object.prototype.hasOwnProperty.call(moduleName, tabListEntry.modulePermissions)){
            const enableTabs = moduleName[tabListEntry.modulePermissions];
            return {...tabListEntry, ...{enableTabs}}
        }
        return tabListEntry
    })
}
PS:本例假设范围中有
moduleName
tabList

if(moduleName[module.modulePermissions])
将不起作用,如果moduleName中的值设置为false
const getModifiedTabList = () => {
    return tabList.map((tabListEntry) => {
        if (Object.prototype.hasOwnProperty.call(moduleName, tabListEntry.modulePermissions)){
            const enableTabs = moduleName[tabListEntry.modulePermissions];
            return {...tabListEntry, ...{enableTabs}}
        }
        return tabListEntry
    })
}