Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 Lodash.\u带有嵌套对象的示例_Javascript_Lodash_Nest Nested Object - Fatal编程技术网

Javascript Lodash.\u带有嵌套对象的示例

Javascript Lodash.\u带有嵌套对象的示例,javascript,lodash,nest-nested-object,Javascript,Lodash,Nest Nested Object,我有一个嵌套对象的对象,如下所示: var SimpleWeapons = { properties: "SimpleWeapons", Club:{Name:"Club", Cost:"1sp", Damage:"1d4 bludgeoning", Weight:"2lb", Properties:"Light"}, Dagger:{Name:"Dagger" , Cost:" 2 gp" , Damage: "1d4 piercing", Weight:"1lb"

我有一个嵌套对象的对象,如下所示:

var SimpleWeapons = {

    properties: "SimpleWeapons",

  Club:{Name:"Club", Cost:"1sp", Damage:"1d4 bludgeoning", Weight:"2lb", Properties:"Light"},
  Dagger:{Name:"Dagger" , Cost:"    2 gp" , Damage: "1d4 piercing", Weight:"1lb" , Properties:"Finesse, light, thrown (range 20/60)"},
  Greatclub:{Name:"Greatclub" , Cost:"2sp" , Damage: "1d8 bludgeoning   ", Weight:"10 lb" , Properties:"Two-handed"},
  Handaxe:{Name:"Handaxe" , Cost:"5gp" , Damage: "1d6 slashing", Weight:"2lb" , Properties:"Light, thrown (range 20/60)"},
  Javelin:{Name:"Javelin" , Cost:"5sp" , Damage: "1d6 piercing", Weight:"2lb" , Properties:"Thrown (range 30/120)"},
  LightHammer:{Name:"Light Hammer" , Cost:"2gp" , Damage: "1d4 bludgeoning", Weight:"2lb" , Properties:"Light, thrown (range 20/60)"},
  Mace:{Name:"Mace" , Cost:"5gp" , Damage: "1d6 bludgeoning", Weight:"4lb" , Properties:""},
  Quarterstaff:{Name:"Quarterstaff" , Cost:"2sp" , Damage: "1d6 bludgeoning", Weight:"4lb" , Properties:"Versatile (1d8)"},
  Sickle:{Name:"Sickle" , Cost:"1gp" , Damage: "1d4 slashing", Weight:"2lb" , Properties:"Light"},
  Spear:{Name:"Spear" , Cost:"1gp" , Damage: "1d6 piercing", Weight:"3lb" , Properties:"Thrown (range 20/60), versatile (1d8)"}

}
我想随机返回一个嵌套对象属性(如字符串),所以使用函数“Club”或“Dagger”。我在本项目中以以下方式在更平坦的对象中使用了
.sample
.sampleSize

var getDefaultEquipment = (chaClass) => {
    if(chaClass === "Bard"){
        var equipment = {};
        equipment.equipment = (_.sampleSize(classes.Bard.equipment,1));
        return equipment;}}

但我不确定如何进一步挖掘,或者即使有可能?

如果您只想要一个结果,请使用
\uu.sample
获得一个随机项目。我也会使用
省略来确保你没有拉
属性
键,这不是有效的武器

一旦从
.sample
调用中获得了一个随机对象,就可以使用点表示法以通常的方式获取其名称:
.name

例如:

var simplewapons={
属性:“simplewapons”,
俱乐部:{
名称:“俱乐部”,
成本:“1sp”,
伤害:“1d4重击”,
重量:“2lb”,
属性:“轻”
},
匕首:{
名字:“匕首”,
费用:“2英镑”,
伤害:“1d4穿刺”,
重量:“1lb”,
属性:“技巧,轻,投掷(范围20/60)”
},
伟大俱乐部:{
名称:“伟大俱乐部”,
成本:“2便士”,
伤害:“1d8重击”,
重量:“10磅”,
属性:“双手”
},
手斧:{
名称:“手斧”,
成本:“5gp”,
伤害:“1d6砍”,
重量:“2lb”,
属性:“光,投掷(范围20/60)”
},
标枪:{
名称:“标枪”,
费用:“5便士”,
伤害:“1d6穿刺”,
重量:“2lb”,
属性:“抛出(范围30/120)”
},
光锤:{
名称:“轻锤”,
成本:“2gp”,
伤害:“1d4重击”,
重量:“2lb”,
属性:“光,投掷(范围20/60)”
},
梅斯:{
名称:“狼牙棒”,
成本:“5gp”,
伤害:“1d6重击”,
重量:“4磅”,
属性:“
},
军需人员:{
姓名:“军需人员”,
成本:“2便士”,
伤害:“1d6重击”,
重量:“4磅”,
属性:“多功能(1d8)”
},
镰刀:{
名称:“镰刀”,
成本:“1gp”,
伤害:“1d4砍”,
重量:“2lb”,
属性:“轻”
},
矛:{
名称:“长矛”,
成本:“1gp”,
伤害:“1d6穿刺”,
重量:“3磅”,
属性:“投掷(射程20/60),多功能(1d8)”
}
}
const randomWearm=u0.sample(0.omit(simplewapons,“properties”)).Name;
日志(“随机武器:”,随机武器)

如果您只想要一个结果,请使用
\uuu.sample
获取一个随机项。我也会使用
省略来确保你没有拉
属性
键,这不是有效的武器

一旦从
.sample
调用中获得了一个随机对象,就可以使用点表示法以通常的方式获取其名称:
.name

例如:

var simplewapons={
属性:“simplewapons”,
俱乐部:{
名称:“俱乐部”,
成本:“1sp”,
伤害:“1d4重击”,
重量:“2lb”,
属性:“轻”
},
匕首:{
名字:“匕首”,
费用:“2英镑”,
伤害:“1d4穿刺”,
重量:“1lb”,
属性:“技巧,轻,投掷(范围20/60)”
},
伟大俱乐部:{
名称:“伟大俱乐部”,
成本:“2便士”,
伤害:“1d8重击”,
重量:“10磅”,
属性:“双手”
},
手斧:{
名称:“手斧”,
成本:“5gp”,
伤害:“1d6砍”,
重量:“2lb”,
属性:“光,投掷(范围20/60)”
},
标枪:{
名称:“标枪”,
费用:“5便士”,
伤害:“1d6穿刺”,
重量:“2lb”,
属性:“抛出(范围30/120)”
},
光锤:{
名称:“轻锤”,
成本:“2gp”,
伤害:“1d4重击”,
重量:“2lb”,
属性:“光,投掷(范围20/60)”
},
梅斯:{
名称:“狼牙棒”,
成本:“5gp”,
伤害:“1d6重击”,
重量:“4磅”,
属性:“
},
军需人员:{
姓名:“军需人员”,
成本:“2便士”,
伤害:“1d6重击”,
重量:“4磅”,
属性:“多功能(1d8)”
},
镰刀:{
名称:“镰刀”,
成本:“1gp”,
伤害:“1d4砍”,
重量:“2lb”,
属性:“轻”
},
矛:{
名称:“长矛”,
成本:“1gp”,
伤害:“1d6穿刺”,
重量:“3磅”,
属性:“投掷(射程20/60),多功能(1d8)”
}
}
const randomWearm=u0.sample(0.omit(simplewapons,“properties”)).Name;
日志(“随机武器:”,随机武器)

我知道已经有了一个公认的答案,但我也想展示一下如何使用
\uuu.chain()
方法实现这一点:

_.chain(SimpleWeapons)
  .omit('properties')
  .sample()
  .get('Name', '') // The extra '' is in case the .Name property is undefined.
  .value();

我知道已经有了一个公认的答案,但我还想展示一下如何使用
\uuu.chain()
方法实现这一点:

_.chain(SimpleWeapons)
  .omit('properties')
  .sample()
  .get('Name', '') // The extra '' is in case the .Name property is undefined.
  .value();

我不知道你在问什么。它看起来就像是
。.sampleSize(simplewapons,1)
会给你想要的。或者,如果您只需要密钥,
\u sampleSize(\uu.keys(simplewapons),1)
。如果这是不对的,你能举个例子,说明你到底想从哪里得到回报吗?@CRice,如果不清楚的话,很抱歉。例如,我想检索Club的
名称:
属性,因此“Club”是一个字符串。当前
equipment.startingwarms=(uu.sampleSize(classes.Bard.startingwarms,1))返回一个objectI,我不确定你在问什么。它看起来就像是
。.sampleSize(simplewapons,1)
会给你想要的。或者,如果您只需要密钥,
\u sampleSize(\uu.keys(simplewapons),1)
。如果这是不对的,你能举个例子,说明你到底想从哪里得到回报吗?@CRice,如果不清楚的话,很抱歉。例如,我想检索Club的
名称:
属性,因此“Club”是一个字符串。当前
equipment.startingwarms=(uu.sampleSize(classes.Bard.startingwarms,1))返回一个工作完美的对象,完全忘记了我可以使用点符号访问属性!非常感谢。很好,t