【问题标题】:How could I create a JSON array in a javascript loop如何在 javascript 循环中创建 JSON 数组
【发布时间】:2015-08-24 11:09:03
【问题描述】:

我想创建一个 javascript json 数组。在和我想有这样的东西:

var requestData= {"uris":["SampleName1", "SampleName2", "SampleName3"],"limit":100 };

名称存储在另一个名为 result.results.bindings 的变量中,我认为我的 for 循环应该是这样的:

for(binding in result.results.bindings){
  // binding holds SampleName1,sampleName2.. etc         

}

那么我该如何创建我上面提到的数组呢?

【问题讨论】:

  • 确定result.results.bindings 已经是一个数组/对象了吗?
  • var a = []; for(var b in result.results.bindings) a.push(result.results.bindings[b]); var json = {uris:a,limit:100}
  • @BenM 是的,但它的类型不是我想要的。
  • 那么你应该在这里发布bindings的值。如果不知道里面有什么,就不可能建议如何创建一个数组。

标签: javascript arrays json


【解决方案1】:

你的意思是这样的吗?

var data = [];
for(binding in result.results.bindings)
    data.push(binding);
var returnObject = {uris: data, limit: 100};

我不知道 result.results.bindings 中数据的结构,但是使用 for 循环,您正在循环对象/数组的键。

如果你想遍历值并且数据源是一个数组,你可以使用这个:

var data = [];
result.results.bindings.forEach(function(value) {
    data.push(value);
});
var returnObject = {uris: data, limit: 100};

【讨论】:

    【解决方案2】:
    var requestData = {};
    var uris = [];
    
    for (binding in result.results.bindings){
       uris.push(binding);
    }
    requestData.uris = uris;
    

    根据@BenM 的建议编辑:

    var requestData = {};
    
    requestData.uris = result.results.bindings;
    

    【讨论】:

    • 为什么不把result.results.bindings分配给requestData.uris
    【解决方案3】:

    我认为for-in循环对数组不是一个好习惯,对对象很好

    for(var i = 0, uris = []; i < result.results.bindings.length; i++)
       uris.push(result.results.bindings[i]);
    
    var returnObject = {"uris": uris, "limit": 100};
    
    console.log(returnObject);
    

    【讨论】:

      【解决方案4】:

       var data = [];
      result.results.bindings.forEach(function(value) {
          eval('data.' + value + ' = ' + value);
      });
      
      // then access your variables like
      alert(data.SampleName1);

      【讨论】:

      • DV推荐eval().
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 2013-08-20
      • 1970-01-01
      相关资源
      最近更新 更多