![](/img/trans.png)
[英]JS: Add path to DOM element in string format returns a non-desired string as output
[英]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.