【问题标题】:Using JavaScript's split to chop up a string and put it in two arrays使用 JavaScript 的 split 来切分字符串并将其放入两个数组中
【发布时间】:2010-04-24 01:41:17
【问题描述】:

我可以使用 JavaScript 的 split 将逗号分隔的项目列表放入数组中:

var mystring = "a,b,c,d,e";
var myarray = mystring.split(",");

我的想法有点复杂。我有这个字典式的字符串:

myvalue=0;othervalue=1;anothervalue=0;

如何拆分它,以便键在一个数组中结束,值在另一个数组中结束?

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    类似这样的:

    var str = "myvalue=0;othervalue=1;anothervalue=0;"
    var keys = [], values = [];
    
    str.replace(/([^=;]+)=([^;]*)/g, function (str, key, value) {
      keys.push(key);
      values.push(value);
    });
    
    // keys contains ["myvalue", "othervalue", "anothervalue"]
    // values contains ["0", "1", "0"]
    

    看看这篇文章:

    【讨论】:

      【解决方案2】:

      我仍然会使用字符串拆分,然后编写一个方法,接收形式为“variable=value”的字符串并在 '=' 上拆分它,返回带有该对的 Map。

      【讨论】:

        【解决方案3】:

        拆分两次。第一次拆分';'获取键值对数组。然后,您可以对每个键值对再次在 '=' 上使用 split 来分别获取键和值。

        【讨论】:

          【解决方案4】:

          你只需要用';'分割并循环并按'='分割。

          var keys = new Array();
          var values = new Array();
          
          var str = 'myvalue=0;othervalue=1;anothervalue=0;';
          var items = str.split(';');
          for(var i=0;i<items.length;i++){
              var spl = items[i].split('=');
              keys.push(spl[0]);
              values.push(spl[1]);
          }
          

          您需要考虑尾随的“;”虽然在字符串的末尾。每次都会在第一个数组的末尾有一个空项目。

          【讨论】:

            猜你喜欢
            • 2020-08-26
            • 1970-01-01
            • 1970-01-01
            • 2020-09-06
            • 1970-01-01
            • 2018-05-18
            • 1970-01-01
            • 2015-04-03
            • 2023-04-04
            相关资源
            最近更新 更多