Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript或jquery中使用对象_Javascript_Jquery - Fatal编程技术网

如何在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”)]
无害地返回未定义的代码。

您可以使用


您可以使用


既然有很多相似的答案,我就把它贴在这里作为参考。既然有很多相似的答案,我就把它贴在这里作为参考。