我有这样的数据结构:
var someObject = {
'part1' : {
'name': 'Part 1',
'size': '20',
'qty' : '50'
},
'part2' : {
'name': 'Part 2',
'size': '15',
'qty' : '60'
},
'part3' : [
{
'name': 'Part 3A',
'size': '10',
'qty' : '20'
}, {
'name': 'Part 3B',
'size': '5',
'qty' : '20'
}, {
'name': 'Part 3C',
'size': '7.5',
'qty' : '20'
}
]
};
Run Code Online (Sandbox Code Playgroud)
我想使用这些变量访问数据:
var part1name = "part1.name";
var part2quantity = "part2.qty";
var part3name1 = "part3[0].name";
Run Code Online (Sandbox Code Playgroud)
part1name应该用someObject.part1.name's值填充,即"Part …
我使用jQuery从DOM中提取项目,并希望使用idDOM元素在对象上设置属性.
const obj = {}
jQuery(itemsFromDom).each(function() {
const element = jQuery(this)
const name = element.attr('id')
const value = element.attr('value')
// Here is the problem
obj.name = value
})
Run Code Online (Sandbox Code Playgroud)
如果itemsFromDom包含一个带有id"myId" 的元素,我想要obj一个名为"myId"的属性.以上给了我name.
如何使用JavaScript使用变量命名对象的属性?
是否可以使用setState更新对象的属性?
就像是:
this.state = {
jasper: { name: 'jasper', age: 28 },
}
Run Code Online (Sandbox Code Playgroud)
我试过了:
this.setState({jasper.name: 'someOtherName'});
Run Code Online (Sandbox Code Playgroud)
还有这个:
this.setState({jasper: {name: 'someothername'}})
Run Code Online (Sandbox Code Playgroud)
第一个是语法错误,第二个什么都不做.有任何想法吗?
我希望有人可以帮助我使用这个Javascript.
我有一个名为"设置"的对象,我想编写一个向该对象添加新设置的函数.
新设置的名称和值以字符串形式提供.然后,提供设置名称的字符串将下划线拆分为数组.通过使用数组的每个部分给出的名称创建新的嵌套对象,新设置应添加到现有的"设置"对象中,除了最后一部分应该是给出设置值的字符串.然后我应该能够参考设置,例如提醒它的价值.我可以像这样以静态的方式做到这一点......
var Settings = {};
var newSettingName = "Modules_Video_Plugin";
var newSettingValue = "JWPlayer";
var newSettingNameArray = newSettingName.split("_");
Settings[newSettingNameArray[0]] = {};
Settings[newSettingNameArray[0]][newSettingNameArray[1]] = {};
Settings[newSettingNameArray[0]][newSettingNameArray[1]][newSettingNameArray[2]] = newSettingValue;
alert(Settings.Modules.Mediaplayers.Video.Plugin);
Run Code Online (Sandbox Code Playgroud)
...创建嵌套对象的部分正在执行此操作...
Settings["Modules"] = {};
Settings["Modules"]["Video"] = {};
Settings["Modules"]["Video"]["Plugin"] = "JWPlayer";
Run Code Online (Sandbox Code Playgroud)
但是,由于构成设置名称的部分数量可能会有所不同,例如newSettingName可能是"Modules_Floorplan_Image_Src",我想使用诸如...之类的函数动态执行此操作.
createSetting (newSettingNameArray, newSettingValue);
function createSetting(setting, value) {
// code to create new setting goes here
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决如何动态地这样做吗?
我假设在那里必须有一个for循环才能通过数组进行迭代,但是我还没有找到一种方法来创建嵌套对象.
如果你有这么远,非常感谢你花时间阅读,即使你无法帮助.
我在字符串中有这条路径:var path = 'bonds.international.emergent'和对象portfolio。
我想portfolio.bonds.international.emergent使用变量中的路径访问path。
类似的东西portfolio[path],显然是行不通的。有人知道该怎么做吗?