[英]How to split a string by Node Js?
我的數組:
var str=['data1,data2 '];
我用過:
var arr = str.split(",");
但是顯示了一個錯誤。 TypeError:對象data1,data2沒有方法'split'。 我怎么解決這個問題。
我的輸出將是:
arr= data1,data2
// or
arr[0]=data1;
arr[1]=data2;
我怎么解決這個問題 ?
你應該做這個 :
var arr = str.toString().split(",");
“ TypeError:對象data1,data2沒有方法'split' ”指示該變量不被視為字符串。 因此,您必須進行強制轉換。
更新2015年10月10日我注意到有人認為以上答案是“ 骯臟的解決方法 ”,令人驚訝的是,此評論遭到了批評。 實際上,這是完全相反的-使用str[0].split(",")
作為3(!),其他建議是真正的“骯臟解決方法”。 為什么? 考慮在這些情況下會發生什么:
var str = [];
var str = ['data1,data2','data3,data4'];
var str = [someVariable];
一旦str
擁有一個空數組, str[0].split(",")
就會徹底失敗,由於某種原因而不是擁有String.prototype
或者如果str
擁有多個字符串,則結果將不令人滿意。 使用str[0].split(",")
盲目地相信str
總是將精確地容納1個字符串,並且絕不會其他任何東西是不好的做法。 數字,數組,對象,布爾值,日期甚至函數都支持toString()
; str[0].split()
具有引發錯誤並停止作用域進一步執行的巨大潛力,從而使整個應用程序崩潰。
如果您確實要使用str[0].split()
那么至少要進行一些最小的類型檢查:
var arr;
if (typeof str[0] == 'string') {
arr = str[0].split(',')
} else {
arr = [];
}
如果您的起點是一個內部帶有string
的array
。 這應該工作:
var arr = str[0].split(",");
否則,您應該以字符串作為起點,代碼才能按預期工作:
var str = 'data1,data2';
如果數組中有更多元素,則需要使用for循環對其進行迭代。
如果該數組中有多個字符串,則應格外小心,並執行以下操作:
var str = ['data1,data2 ', ' data3, data4 ']; // notice these strings have many spaces in different places var longString = str.join(','); var array = longString.split(',').map(s => s.trim()).filter(Boolean); // removing spaces from start and end of strings, and eventually removing empty positions console.log(array);
如您所說, str
是一個數組(帶有一個元素)。 如果要拆分數組中包含的字符串,則必須首先訪問該數組:
var arr = str[0].split(",");
假設我們有兩個日期:
date1:1989年1月17日
date2:20/02/2000
如果我們想比較它們,只需將字符串分開並像這樣比較
var date1= date1.toString().split("/");
var date2= date2.toString().split("/");
var a = parseInt(date1[2] + date1[1] + date1[0]);
var b = parseInt(date2[2] + date2[1] + date2[0]);
如果(a <b){
alert(“ date2比date1大”)}
}否則if(a> b){
警報(“ date1大於date2”)
}其他{
alert(“ date 1和date2等於”);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.