【问题标题】:Convert string to 2 dimension array in Javascript在Javascript中将字符串转换为二维数组
【发布时间】:2013-07-10 05:49:02
【问题描述】:

我有这个字符串需要转换为数组:

var string = "[[Restaurants], [Restaurants], [Restaurants], [Caterers, Foods - Take-out]]";

然后我需要能够像这样访问它的值:

var foo = arr[0];  //returns "Restaurant"
var bar = arr[3];  //returns "Caterers, Foods - Take-out"

我尝试删除第一个和最后一个字符( "[" 和 "]" ),但在拆分 "," 时仍然遇到问题,因为其中一些值包含逗号。有什么想法吗?

【问题讨论】:

  • 您的 'var string = ....' 语句不是有效的 javascript。
  • 这不是字符串 -->>> var string = [[Restaurants], [Restaurants], [Restaurants], [Caterers, Foods - Take-out]]
  • 我想你的意思是var arr = ["Restaurants", "Restaurants", "Restaurants", "Caterers, Foods - Take-out"]
  • 对不起,我忘了引号......这是一个字符串。

标签: javascript arrays json


【解决方案1】:

您可以结合使用split 方法和map 方法。 split 创建数组,map 通过返回一个新的 Array 来清理它:

var string = '[[Restaurants], [Restaurants], [Restaurants], [Caterers, Foods - Take-out]]';

var items = string.split('],').map(
    function(s) { return s.replace(/(\[\[| \[|\]\])/g, ''); }
);

http://jsfiddle.net/4LYpr/

【讨论】:

    【解决方案2】:

    由于您要拆分并尝试创建一个数组,因此首先删除第一个(“[[”)和最后一个(“]]”),然后将字符串拆分为(“],[”)。

    【讨论】:

      【解决方案3】:

      简单:

      > a = "[[Restaurants], [Restaurants], [Restaurants], [Caterers, Foods - Take-out]]"
      > b = a.slice(1).split(",")
      > newB = []
      > for (i=0;i < b.length;i++) {
          formatted = b[i].trim().slice(1,-2);
          newB.push(formatted);
      }
      

      【讨论】:

        猜你喜欢
        • 2011-07-07
        • 2019-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-28
        • 1970-01-01
        相关资源
        最近更新 更多