【问题标题】:Parsing CSV data in Javascript在 Javascript 中解析 CSV 数据
【发布时间】:2011-03-05 13:42:57
【问题描述】:

我有一个这样的字符串:

138374:order1,738437:order2,927438:order3

我正在循环使用逗号 (,) 拆分订单

如何用冒号 (:) 进一步拆分以生成订单号和订单名称。

下面是代码:

function(getOrders) {
  var completeOrderRequest = getOrders.split(',');
  for(var j=0; j < orderRequest.split(',').length; j++) {
    alert(completeOrderRequest[j]);
    var nameOrderIds = completeOrderRequest[j].split(':');

    alert("OrderNumber: "+nameOrderIds[0]);
    alert("Name : "+nameOrderIds[1]);
  }  
}   

现在它给我orderNumber 0

【问题讨论】:

标签: javascript string csv split


【解决方案1】:

注意var hoisting。 Javascript 没有块范围变量,只有函数范围变量;在您的代码中,nameorderIDs 实际上是在completeOrderRequest 下方定义的。

【讨论】:

    【解决方案2】:

    什么是orderRequest?

    var getOrders = "138374:order1,738437:order2,927438:order3,";
    
    var completeOrderRequest = getOrders.split(",");
    
    for(i = 0; i < completOrderRequest.length; i++){
       var nameOrderIds = completeOrderRequest[j].split(':');
       alert("OrderNumber: "+nameOrderIds[0]);  
       alert("Name : "+nameOrderIds[1]);    
    }
    

    【讨论】:

      【解决方案3】:

      orderRequest.split(',') 中的orderRequest 是从哪里来的??应该改为:

      for (var j = 0; j

      如果是这样,这意味着您要进行两次拆分,这将不起作用,因为您是在同一个字符上拆分。

      【讨论】:

        【解决方案4】:

        这是一个应该更像您正在寻找的功能:

        function(getOrders) {
          var completeOrderRequest = getOrders.split(',');
          for(var j=0; j < completeOrderRequest.length; j++) {
            var idsAndNames = completeOrderRequest[j].split(':');
            alert("OrderNumber: "+idsAndNames[0]);
            alert("Name : "+idsAndNames[1]);
          } 
        }   
        

        【讨论】:

          【解决方案5】:
          function getOrders( orderString) {
             var orders = orderString.split(','); // create array of ordernumber:name combos
             for( var i=0; i < orders.length; i++) { // use length of above array, not a split again
                var entry = orders[i].split(':'); // now break each combo into it's own array
                alert( "OrderNumber: " + entry[0] );
                alert( "Name: " + entry[1] );
             }
          }
          

          demo: http://jsfiddle.net/MDNmF/

          【讨论】:

            猜你喜欢
            • 2017-02-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-09-16
            • 2010-11-20
            相关资源
            最近更新 更多