簡體   English   中英

JavaScript中的條件數組格式

[英]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;
    }
});

http://fiddle.jshell.net/duw99072/

您可以使用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.

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