如何在javascript或jquery中使用对象
我需要创建像这样的对象参数如何在javascript或jquery中使用对象,javascript,jquery,Javascript,Jquery,我需要创建像这样的对象参数 sample_data=[{ name: 'new', data: [1, 0, 2, 8, 1] }, { name: 'open', data: [1, 2, 3, 7, 1] },{
sample_data=[{
name: 'new',
data: [1, 0, 2, 8, 1]
}, {
name: 'open',
data: [1, 2, 3, 7, 1]
},{
name: 'closed',
data: [5, 4, 3, 1, 1]
},{
name: 'onhold',
data: [1, 1, 2, 0, 1]
}, {
name: 'completed',
data: [0, 0, 5, 1, 2]
}];
我一共有6个数组,所有的名称参数都在数组1中,所有的数据参数都在另一个数组中
是否有任何选项可以使用我拥有的数组按照我上面的要求构建对象
我的阵列:
name_array=Array("new","open","closed","onhold","completed");
new_data=Array(1, 0, 2, 8, 1);
open_data=Array(1, 2, 3, 7, 1);
closed_data=Array(5, 4, 3, 1, 1);
onhold_data=Array(1, 1, 2, 0, 1);
completed_data=Array(0, 0, 5, 1, 2);
帮助我如何在javascript或jquery中使用这些数组创建对象。此解决方案假定数组对象是全局声明的(在窗口对象上)。通常我不会建议这种类型的事情,但这是可行的:
var sampleData = [];
for (var i = 0; i < name_array.length; i++) {
var arrayName = name_array[i];
sampleData.push({
name: arrayName,
data: window[arrayName + "_data"]
});
}
var sampleData=[];
对于(var i=0;i
下面是一个JSFIDLE,它可以工作:
此解决方案假定数组对象是全局声明的(在窗口对象上)。通常我不会建议这种类型的事情,但这是可行的:
var sampleData = [];
for (var i = 0; i < name_array.length; i++) {
var arrayName = name_array[i];
sampleData.push({
name: arrayName,
data: window[arrayName + "_data"]
});
}
var sampleData=[];
对于(var i=0;i
下面是一个JSFIDLE,它可以工作:
听起来你应该使用的是一个对象
names = {
"new" : Array(1, 0, 2, 8, 1),
"open" : Array(1, 2, 3, 7, 1),
...
};
因此,根据上面的样本数据
构建它将是:
names = {};
for(var i =0; i<sample_data.length; i ++){
names[sample_data[i].name] = sample_data[i].data;
}
names={};
对于(var i=0;i来说,听起来您应该使用的是一个对象
names = {
"new" : Array(1, 0, 2, 8, 1),
"open" : Array(1, 2, 3, 7, 1),
...
};
因此,根据上面的样本数据
构建它将是:
names = {};
for(var i =0; i<sample_data.length; i ++){
names[sample_data[i].name] = sample_data[i].data;
}
names={};
对于(var i=0;i,使用eval()函数
var name_array=Array("new","open","closed","onhold","completed");
var new_data=Array(1, 0, 2, 8, 1);
var open_data=Array(1, 2, 3, 7, 1);
var closed_data=Array(5, 4, 3, 1, 1);
var onhold_data=Array(1, 1, 2, 0, 1);
var completed_data=Array(0, 0, 5, 1, 2);
$(function(){
var combined = [];
for(var i = 0;i<name_array.length;i++)
{
combined.push({
name: name_array[i],
data: eval(name_array[i] + "_data")
});
}
});
var name_array=array(“新建”、“打开”、“关闭”、“保留”、“完成”);
var new_data=Array(1,0,2,8,1);
var open_data=Array(1,2,3,7,1);
var closed_数据=数组(5,4,3,1,1);
var onhold_data=数组(1,1,2,0,1);
变量完成_数据=数组(0,0,5,1,2);
$(函数(){
组合风险值=[];
对于(var i=0;i,使用eval()函数
var name_array=Array("new","open","closed","onhold","completed");
var new_data=Array(1, 0, 2, 8, 1);
var open_data=Array(1, 2, 3, 7, 1);
var closed_data=Array(5, 4, 3, 1, 1);
var onhold_data=Array(1, 1, 2, 0, 1);
var completed_data=Array(0, 0, 5, 1, 2);
$(function(){
var combined = [];
for(var i = 0;i<name_array.length;i++)
{
combined.push({
name: name_array[i],
data: eval(name_array[i] + "_data")
});
}
});
var name_array=array(“新建”、“打开”、“关闭”、“保留”、“完成”);
var new_data=Array(1,0,2,8,1);
var open_data=Array(1,2,3,7,1);
var closed_数据=数组(5,4,3,1,1);
var onhold_data=数组(1,1,2,0,1);
变量完成_数据=数组(0,0,5,1,2);
$(函数(){
组合风险值=[];
for(var i=0;i$.map()
是一种干净的表达方式:
var sample_data = $.map(name_array, function(type) {
return {
name: type,
data: window[type + '_data']
};
});
无论您使用for循环还是$.map()
(这也是引擎盖下的for循环),区分使用window[string]
和eval(string)
都很重要。构建一个字符串用作窗口键与使用eval不同,也不会共享其漏洞
例如,window['alert(“doevil”)]
无害地返回未定义的值。$。map()
是一种干净的表达方式:
var sample_data = $.map(name_array, function(type) {
return {
name: type,
data: window[type + '_data']
};
});
无论您使用for循环还是$.map()
(这也是引擎盖下的for循环),区分使用window[string]
和eval(string)
都很重要。构建一个字符串用作窗口键与使用eval不同,也不会共享其漏洞
例如,window['alert(“doevil”)]
无害地返回未定义的代码。您可以使用
您可以使用
既然有很多相似的答案,我就把它贴在这里作为参考。既然有很多相似的答案,我就把它贴在这里作为参考。