【问题标题】:Convert string into Array by comma separated用逗号分隔字符串转换成数组
【发布时间】:2015-09-11 03:43:11
【问题描述】:

以下是通过ajax调用传递给rails控制器的参数

Parameters: {"selectedpos"=>"[\"55f188e9f8e6c2616f00006e\",\"55f17bc5f8e6c2616f00004a\"]", "id"=>"55f24b81f8e6c214d5000014", "_"=>"1441942399695"}

Ajax 调用:

var purchaseorders = $('#purchaseorders option:selected');
    var selectedpos = [];
    $(purchaseorders).each(function(index, brand){
        selectedpos.push($(this).val());
    });
    $.ajax({
      url: '/getpurchaseorder_data' ,
        type: "GET",
          data: { selectedpos:JSON.stringify(selectedpos), id: '<%= @invoice._id %>'},
          dataType: 'script'
    });

在 rails 控制器中,selectedpos 被视为字符串,现在需要将这些字符串转换为 po id 数组。

【问题讨论】:

  • 为什么你在 JavaScript 中手动 JSON.stringify(selectedpos)
  • 除了 muistooshort 的评论:如果你不 JSON.stringify 你的数组而是通过 data: { selectedpos: selectedpos, id: '&lt;%= @invoice._id %&gt;' } 会发生什么?

标签: jquery ruby ajax ruby-on-rails-4


【解决方案1】:

根据您的问题标题:

将字符串转换为逗号分隔的数组

你可以使用String#split方法:

> string = "This,is,my,sample string"
> string.split(',')
#=> ["This", "is", "my", "sample string"]

【讨论】:

  • > string = "[\"55f188e9f8e6c2616f00006e\",\"55f17bc5f8e6c2616f00004a\"]" 这整个部分是字符串我们做什么..?
【解决方案2】:

您可以像这样使用拆分功能:

var str = "How are you doing today?";
var res = str.split(" ");

res 的结果将是一个包含值的数组:

你今天过得怎么样?

在您的情况下,它是逗号而不是空格

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多