簡體   English   中英

在JS中格式化字符串的輸出

[英]Format output of string in JS

我有一個函數,它接受一串用逗號分隔的項目,例如“ a,b,c,d”。

我需要將其轉換為:“ a” || “ b” || “ c” || “ d”請注意,逗號分隔的字符串中的項目數可以是動態的,因此可以為1、2、20等。

這是我嘗試的示例:

function sample (params) {
var comp = "",
    i,
    paramsArr = params.split(","),
    status;

for (i = 0; i < paramsArr.length; i++) {
    comp += paramsArr[i] + ' ||';
}

comp = comp.substring(0, comp.length - 3);
status = comp ? "AVAILABLE" : "UNAVAILABLE";

return status;
}

我的問題是在for循環中,當我遍歷數組中的項並添加OR運算符時,它顯然以“ a || b || c || d”之類的1個字符串結尾,並且總是評估為true。

有人可以告訴我如何在IF語句中將comp的值設置為“ a” ||的格式。 “ b” || “C” ?

PS我不是javascript的新手,所以如果這不是可行的方法,請提出我如何實現我所需要的建議,我將非常高興。

您需要在parms上使用eval:

function sample (params) {
 var paramsArr = params.split(",");
 for (i = 0; i < paramsArr.length; i++) {
    if (eval(paramsArr[i])){
        return "AVAILABLE";
    } 
 }  

 return "UNAVAILABLE";
}

a=true;
b=false;
c=false;
> sample("a,b,c")
< AVAILABLE = $1
> a=false
< false = $2
> sample("a,b,c")
< UNAVAILABLE = $2

亞歷山大的部分回答。

"a, b, c, d".split(',').map(function(value){
  return '"' + value.trim() + '"';
}).join(' || ')

輸出: “ a” || “ b” || “ c” || “ d”

演示

這是另一種可能的解決方案:

 var str = "a, b, c, d"; var res = str.split(',').map(function(x) { return '"' + x.replace(/ /g, '') + '"' }).join('||'); console.log(res) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM