【问题标题】: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/