如何使用javascript匹配if条件的数组中的对值

时间:2015-09-25 06:44:36

标签: javascript arrays

我想在现有数组的基础上创建一个数组,以下是我试过的代码

var shortArray = new Array();
var resultArray = new Array();
shortArray = [
    ["Team 1", "Bye"],
    ["Team 2", "Bye"],
    ["Team 3", "Bye"],
    ["Team 4", "Team 5"]
]


for (var k = 0; k < shortArray.length; k++) {
    if (shortArray[k][0] == "Bye") {
        resultArray.push(0, 1);
    } else {
        resultArray.push(1, 0);
    }
}

我想要一个

resultArray=[["1","0"],["1","0"],["1","0"],["0","0"]]

就像单阵列一样,有#34;再见&#34; name我在resultArray中需要0值

2 个答案:

答案 0 :(得分:1)

列出的输出是包含数组的数组。为此,您需要将数组而不是单个值推送到数组中。 E.g:

resultArray.push(["0", "1"]);
// Note ---------^--------^

resultArray.push(["1", "0"]);
// Note ---------^--------^

酌情。每个人都将带有条目的数组推入resultArray,而不是将离散的条目推入其中。

另请注意,您在shortArray中检查错误的值。你应该检查索引1,而不是0:

if (shortArray[k][1])
// ---------------^

答案 1 :(得分:1)

如果您想从shortArray获取类似的表单,但将所有值更改为'Bye''1',将其他值更改为'0',则可以使用map:< / p>

var shortArray= [["Team 1","Bye"],["Team 2","Bye"],["Team 3","Bye"],["Team 4","Team 5"]]

// Loop through shortArray, and generate a new array base on each item's value in shorArray.
var resultArray= shortArray.map(function(arr) {
  // Loop through arr to create a new array that, replace Bye to 0, other to 1.
  return arr.map(function(value) {
    return value === 'Bye' ? '0' : '1';
  });
  
});

console.log(resultArray);