Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.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_Javascript Objects - Fatal编程技术网

获取Javascript对象中的属性

获取Javascript对象中的属性,javascript,javascript-objects,Javascript,Javascript Objects,我有下面的javascript对象,它表示一个表的列,我希望用户可以根据自己的选择选择显示和分析这些列 var nominalVars = { state : 'State', messoreg : 'Messoreg', reggeoint : 'RegGeoInt', reggeoimd : 'RegGeoImed', microreg : 'Microreg', regmetro : 'RegMetro',

我有下面的javascript对象,它表示一个表的列,我希望用户可以根据自己的选择选择显示和分析这些列

var nominalVars   = {
    state     : 'State',    
    messoreg  : 'Messoreg',
    reggeoint : 'RegGeoInt',
    reggeoimd : 'RegGeoImed',
    microreg  : 'Microreg',
    regmetro  : 'RegMetro',
    city      : 'City',
    tipdepe   : 'TipDep',
    nvldepe   : 'NvlDepe',
    prefix    : 'Prefix',
    subord    : 'Subord'
    };
我需要的是检索最后选中的复选框下面的所有属性,例如,如果用户选择了[state]复选框,那么我想获取[messoreg]、[reggeoint]、[reggeoimd]、[microreg]等,并将值传递给数组

我不知道是否有其他方法可以做到这一点,但我正在尝试避免使用if语句的Swith。

使用
Object.keys()
将obect的键作为数组获取。然后,您可以使用
indexOf()
获取特定属性的索引,并可以对其余键进行切片

var nominalVars={
州:'州',
messoreg:“messoreg”,
reggeoint:'reggeoint',
reggeoimd:“RegGeoImed”,
microreg:“microreg”,
regmetro:“regmetro”,
城市:'城市',
tipdepe:“TipDep”,
nvldepe:'nvldepe',
前缀:'前缀',
子命令:“子命令”
};
让最后一个复选框=“城市”;
让keys=Object.keys(nominalVars);
设index=keys.indexOf(最后一个复选框);
让下面的_keys=keys.slice(索引+1);
console.log(遵循_键)使用
Object.keys()
获取对象的键作为数组。然后,您可以使用
indexOf()
获取特定属性的索引,并可以对其余键进行切片

var nominalVars={
州:'州',
messoreg:“messoreg”,
reggeoint:'reggeoint',
reggeoimd:“RegGeoImed”,
microreg:“microreg”,
regmetro:“regmetro”,
城市:'城市',
tipdepe:“TipDep”,
nvldepe:'nvldepe',
前缀:'前缀',
子命令:“子命令”
};
让最后一个复选框=“城市”;
让keys=Object.keys(nominalVars);
设index=keys.indexOf(最后一个复选框);
让下面的_keys=keys.slice(索引+1);
console.log(遵循_键)
将返回为任何javascript对象定义的键。您必须相应地筛选此阵列以符合您的要求


将返回为任何javascript对象定义的键。您必须相应地筛选此数组以符合您的要求。

如果要跟踪订单,则不应使用对象。您可以使用
映射
数组
。 Map对象保存键值对并记住键的原始插入顺序

let map=new map();
map.set('state','state');
map.set('messoreg','messoreg');
set('reggeoint','reggeoint');
map.set('reggeoimd','RegGeoImed');
map.set('microreg','microreg');
map.set('regmetro','regmetro');
map.set('city','city');
map.set('tipdepe','TipDep');
map.set('nvldepe','nvldepe');
map.set('prefix','prefix');
set('subord','subord');
功能获取键(地图、后键){
让shouldAdd=false,res=[];
for(map.keys()的常量键){
如果(应添加)res.push(按键);
如果(key==afterKey)shouldAdd=true;
}
返回res;
}
函数getKeysBefore(映射、beforeKey){
让shouldAdd=true,res=[];
for(map.keys()的常量键){
if(key==beforeKey)shouldAdd=false;
如果(应添加)res.push(按键);
}
返回res;
}
//在“reggeoint”之后获取密钥
让钥匙;
keys=getKeys(映射“reggeoint”);
document.write(JSON.stringify(keys))
//在“城市”之后拿到钥匙
keys=getKeys(地图“城市”);
document.write(JSON.stringify(keys))
//在“城市”之前拿到钥匙
keys=getKeysBefore(映射“城市”);

document.write(JSON.stringify(keys))
如果您想跟踪订单,就不应该使用对象。您可以使用
映射
数组
。 Map对象保存键值对并记住键的原始插入顺序

let map=new map();
map.set('state','state');
map.set('messoreg','messoreg');
set('reggeoint','reggeoint');
map.set('reggeoimd','RegGeoImed');
map.set('microreg','microreg');
map.set('regmetro','regmetro');
map.set('city','city');
map.set('tipdepe','TipDep');
map.set('nvldepe','nvldepe');
map.set('prefix','prefix');
set('subord','subord');
功能获取键(地图、后键){
让shouldAdd=false,res=[];
for(map.keys()的常量键){
如果(应添加)res.push(按键);
如果(key==afterKey)shouldAdd=true;
}
返回res;
}
函数getKeysBefore(映射、beforeKey){
让shouldAdd=true,res=[];
for(map.keys()的常量键){
if(key==beforeKey)shouldAdd=false;
如果(应添加)res.push(按键);
}
返回res;
}
//在“reggeoint”之后获取密钥
让钥匙;
keys=getKeys(映射“reggeoint”);
document.write(JSON.stringify(keys))
//在“城市”之后拿到钥匙
keys=getKeys(地图“城市”);
document.write(JSON.stringify(keys))
//在“城市”之前拿到钥匙
keys=getKeysBefore(映射“城市”);

document.write(JSON.stringify(keys))
如果排序很重要,不要使用对象。使用数组。如果排序很重要,请不要使用对象。使用数组。我在这里尝试了你的建议。似乎只有当我选择最后一个选项(在本例中为state)时,它才会起作用。例如,如果我选择[city]选项,代码会将其上面的所有项目(如[regmetro]、[microreg]等)带到[state]选项。我只需要获得city下面的选项,例如[tipdepe]、[nvldepe]、[prefix]和[subord]。我将代码片段更改为使用
city
,它返回
[“tipdepe”、“nvldepe”、“prefix”、“subord”]
JavaScript不要求
对象.keys()
按照您定义的顺序返回键。您应该使用数组或
Map
解决方案。我在这里尝试了您的建议。似乎只有当我选择最后一个选项(在本例中为state)时,它才会起作用。例如,如果我选择[city]选项,代码会将其上面的所有项目(如[regmetro]、[microreg]等)带到[state]选项。我只需要获取城市下方的选项,例如[tipdepe]、[nvldepe]、[prefix]和[subord]。我将代码片段更改为使用
city
,它返回
[“tipdepe”、“nvldepe”、“prefix”、“subord”]
JavaScript不需要
Object.keys(obj)