根据顺序更改深度嵌套Javascript对象中同名属性的多个值
Changing multiple values of properties of the same name in a deeply nested Javascript object depending on their order
我一直在努力解决这个javascript问题。我有一系列与传递到图形中的数据相关的对象。
我在数组中嵌套了一个对象,看起来像这样:
var questions = [
{
id: 1,
Title: 'First Question',
data: {
Datasets: [{
fillColor : 'rgba(151,187,205,0.5)', // Represents 2012
data : [144,223,442,23,43]
},{
fillColor: 'rgba(220,220,220,1)', // Represents 2014
data : [22,343,23,54,34]
}]
{
},
{
id: 2,
Title: 'Second Question',
data: {
Datasets: [{
fillColor : 'rgba(151,187,205,0.5)', // Represents 2012
data : [154,23,442,23,13]
},{
fillColor: 'rgba(220,220,210,1)', // Represents 2014
data : [24,33,23,54,34]
}]
}
}];
将有50个这样的问题。我需要为数据集[0]分配不同的颜色。fillColor和Dataset[1]。fillColor分别用于所有问题。
我知道我应该在这里使用for循环,但我很难在巢中深入。我可以为fillColor设置变量吗?即:
var red = // some rgba value;
var two-thousand-twelve;
var two-thousand-fourteen;
Datasets: [{
fillColor : two-thousand-twelve, // Represents 2012
data : [154,23,442,23,13]
},{
fillColor: two-thousand-fourteen, // Represents 2014
data : [24,33,23,54,34]
}]
two-thousand-twelve = red; // how can I make this retroactively update the object?
我将这些更改绑定到onClick按钮,因此对象需要用新数据重新加载。将此变量更新为红色并不会更新对象…
从我一直在阅读我应该尝试使用一个for循环来迭代对象,但我如何区分在数据集数组的两个对象,在巢的深处,并分配它们,使它们可以很容易地编辑?
一个问题一个问题地思考:
var i, question;
for (i = 0; i < questions.length; ++i) {
question = questions[i];
question.data.Datasets[0].fillColor = something;
question.data.Datasets[1].fillColor = somethingElse;
}
如果您发现处理这些长链的引用令人困惑或乏味,您可以通过引入一个函数来分解这些工作:
function updateFillColors(dataset, colors) {
dataset[0].fillColor = colors[0];
dataset[1].fillColor = colors[1];
}
var i;
for (i = 0; i < questions.length; ++i)
updateFillColor(questions[i].data.Dataset, [something, somethingElse]);
例如。
相关文章:
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- 使用onclick调用属性对象函数
- 嵌套为..in 循环,列出多维对象的属性(对象)
- 动态属性对象 - JSON
- 在不使用隔离范围angularjs自定义指令的情况下获取属性对象
- 通过属性传递属性/对象.Javascript
- Javascript:属性/对象的类型
- 访问JSON中的属性(对象)
- 属性对象Javascript不是用Jquery Deferred设置的
- 无法读取属性'#<对象>'未定义的获取错误
- Twitter中多属性对象的子字符串匹配
- 无法设置'data'属性'对象'标记.(只IE8)
- 更新数据属性对象属性值
- 将属性对象的选定对象从原型推入数组
- 将单个属性对象字面量的数组转换为仅包含其值的数组的最佳方法
- 寻找一种更简单的方法来检查是否多个属性&对象中的方法是未定义的
- 主干模型:带有get方法的空属性,但在属性对象中
- 如何赋值给"text"someText"属性对象在动能js
- Angularjs的数据绑定与数据属性对象
- 如何将一个嵌套的javascript对象转换为只有一级属性对象