[英]Conditional array formatting in JavaScript
我有一個帶有文本字符串的數組:
var myarray = ["valueA","valueB","valueC","valueD/valueA","valueE","valueC/valueA"];
數組中的某些值帶有斜杠, 例如 “ aaa / bbb”。 斜杠具有分隔兩個值的特殊含義。
我想基於布爾函數獲得具有一個值或另一個值的新數組。
例如:
var myarray = ["valueA/valueB"];
var myNewarray = myFunction(myarray, true); // myNewarray == ["valueA"]
var myNewarray2 = myFunction(myarray, false); // myNewarray2 == ["valueB"]
myarray = ["valueA/valueC","valueB","valueD/valueF"];
myNewarray = myFunction(myarray, true); // ["valueA","valueB","valueD"]
myNewarray = myFunction(myarray, false); // ["valueC","valueB","valueF"]
如果元素包含斜線,只需遍歷數組和.split()
:
假設您想讓[ oddWeek
的值(在您的小提琴中)確定以斜杠分隔的數組元素的左/右值:
var myarray = ["valueA/valueC","valueB","valueD/valueF"];
myarray.forEach(function (val, index, array) {
if (val.indexOf('/') > -1) {
val = val.split('/')[oddWeek];
}
output += '<p>' + val + '</p>'
});
更新的小提琴: http : //fiddle.jshell.net/r1hvbjs5/2/
使用Array.map
在每個項目上調用一個函數,並根據某些條件返回另一個值。
var cond = false;
var myarray = ["valueA/valueC","valueB","valueD/valueF"];
var myNewarray = myarray.map( function(item){
var values = item.split('/');
if( values.length == 2 ){
return cond ? values[0] : values[1];
}
else {
return item;
}
});
您可以使用Array.prototype.map
它創建一個新數組,其結果是對該數組中的每個元素調用提供的函數。
考慮到您的變量被命名為condition
:
myarray.map(function(el){
return el.indexOf('/') > -1 ? el.split('/')[condition ? 0 : 1] : el;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.