相关疑难解决方法(0)

使用字符串键访问嵌套的JavaScript对象

我有这样的数据结构:

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 …

javascript jquery nested path

410
推荐指数
16
解决办法
18万
查看次数

使用变量作为名称将属性添加到JavaScript对象?

我使用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使用变量命名对象的属性?

javascript syntax jquery object

257
推荐指数
4
解决办法
30万
查看次数

在React中使用setState更新对象

是否可以使用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)

第一个是语法错误,第二个什么都不做.有任何想法吗?

state reactjs

211
推荐指数
10
解决办法
19万
查看次数

Javascript:如何使用数组给出的对象名称动态创建嵌套对象

我希望有人可以帮助我使用这个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循环才能通过数组进行迭代,但是我还没有找到一种方法来创建嵌套对象.

如果你有这么远,非常感谢你花时间阅读,即使你无法帮助.

javascript arrays nested dynamic object

55
推荐指数
9
解决办法
6万
查看次数

如何在 Javascript 中将字符串附加到对象“路径”中?

我在字符串中有这条路径:var path = 'bonds.international.emergent'和对象portfolio

我想portfolio.bonds.international.emergent使用变量中的路径访问path

类似的东西portfolio[path],显然是行不通的。有人知道该怎么做吗?

javascript

3
推荐指数
1
解决办法
837
查看次数

标签 统计

javascript ×4

jquery ×2

nested ×2

object ×2

arrays ×1

dynamic ×1

path ×1

reactjs ×1

state ×1

syntax ×1