【问题标题】:Converting string array to Name/Value object in javascript在javascript中将字符串数组转换为名称/值对象
【发布时间】:2011-05-20 16:02:07
【问题描述】:

我目前正在处理一个向客户端返回字符串数组的 Web 服务。从这里我想把这个字符串数组转换成一个对象,给每个字符串一个名字,以便以后引用它。

所以从这个开始:

var result = ["test", "hello", "goodbye"];

我想这样结束:

var final = [{'value': "test"}, {'value': "hello"}, {'value': "goodbye"}];

我使用 jquery。有没有容易做到的?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:
    var final = $.map(result, function(val) {
        return { value: val };
    });
    

    您也可以使用 ES5 替代方法

    var final result.map(function(val) {
        return { value: val };
    });
    

    或者简单的迭代。

    var final = [];
    for (var i = 0, ii = result.length; i < ii; i++) {
        final.push({ value: result[i] });
    }
    

    【讨论】:

      【解决方案2】:

      我认为这里不必使用 jQuery。

      var result = ["test", "hello", "goodbye"];
      var final = [];
      for(var i = 0; i < result.length; i++) {
          final.push({value: result[i]})
      }
      

      【讨论】:

      • for(i in result) 会用更少的输入给出相同的答案
      • @Bryce Siedschlaw:注意这一点,原型函数也会突然出现在数组中。
      • 嗯,很有趣。认为会有一个警告。
      【解决方案3】:

      我尚未对此进行测试,但您可以执行类似的操作

      $(result).map(function(){return {'value':this}});

      【讨论】:

      • 试试这个:var result = $(result).map(function() { return {'value': this}; });
      【解决方案4】:

      您可以执行以下操作:

      var input = ["one", "two", "three"], 
          output = [],
          obj;
      
      for (var i = 0; i < input.length; i++)
      {
          obj = { "value" : input[i] };
      
          output.push(obj);
      
      }
      

      链接到fiddle

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-18
        • 2021-10-19
        • 2013-04-19
        • 1970-01-01
        • 2018-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多