我有一个渐变数组,每次调用函数时我都会尝试传递给图表库。
库要求将渐变作为对象传递为以下格式:
QVBoxLayout
我已经构建了一系列渐变:
QListView
每次调用函数时,我都存储一个索引值,并需要检索数组中相应的渐变。如何从[0, 'rgba(73,115,214,.15)'],
[1, 'rgba(73,115,214,.07)']
检索特定索引值并将其构造为必要的格式?
var gradients = [
[
['rgba(73,115,214,.15)'],
['rgba(148,196,168,.1)']
],
[
['rgba(73,115,214,.07)'],
['rgba(41,189,102,.12)']
]
]
例如,如果索引是2,我想返回:
gradients
答案 0 :(得分:1)
请检查此小提琴代码:http://jsfiddle.net/qp6kL5ms/1/
您可以像这样编写循环:
function setData() {
index = index + 1;
var resultantGradient = [];
gradients[index].forEach(function(gradient, index) {
resultantGradient.push([index, gradient]);
});
return resultantGradient;
}
答案 1 :(得分:0)
这是你需要的吗? 如果您正在准备硬编码数据,请执行此操作。
var gradients = {
"0" : "['rgba(73,115,214,.15)']",
"1" : "['rgba(148,196,168,.1)']",
"2" : "['rgba(73,115,214,.07)']",
"3" : "['rgba(41,189,102,.12)']"
}
在通过它时你可以通过以下方式准备它:
var globalArray = [];
for( var grad in gradients ) {
var obj = [];
var val = grad+","+gradients[grad];
obj.push(val);
globalArray.push(obj);
}
现在您提到的索引事项,您可以像这样修改函数。
var globalArray = [];
// in your case you have show index as 2
function setData( index ){
for( var grad in gradients ) {
if ( grad < index ) {
var obj = [];
var val = grad+","+gradients[grad];
obj.push(val);
globalArray.push(obj);
}
}
}
希望这有帮助
答案 2 :(得分:0)
这是你所期望的吗?
var index = -1;
function setData() {
var result = [];
index = index + 1;
//I Need a gradient!
gradients[index].forEach(function(element, key) {
result[key] = [key, element[0]];
});
console.log(result);
return result;
}
顺便说一下,数组索引从0开始。所以我希望如果index == 1,它将返回:
[0, 'rgba(73,115,214,.07)'],
[1, 'rgba(41,189,102,.12)']