例如,如果我的數組是是否有可能在一個數組的一個位置有多個字符串?
var cars = ["Saab", "Volvo", "BMW"];
var answer = cars[1];
和我創建了一個函數,其中,如果我輸入「沃爾沃」它說:「正確的」。是否有可能做這樣的事情:
var cars = ["Saab", "Volvo|volkswagen", "BMW"];
所以,當我輸入的是在位置1,就可以輸入:沃爾沃或大衆汽車公司和它會說「正確」? (但不是兩者)
例如,如果我的數組是是否有可能在一個數組的一個位置有多個字符串?
var cars = ["Saab", "Volvo", "BMW"];
var answer = cars[1];
和我創建了一個函數,其中,如果我輸入「沃爾沃」它說:「正確的」。是否有可能做這樣的事情:
var cars = ["Saab", "Volvo|volkswagen", "BMW"];
所以,當我輸入的是在位置1,就可以輸入:沃爾沃或大衆汽車公司和它會說「正確」? (但不是兩者)
拆分使用String#split
方法(與分隔符|
)將字符串並且使用Array#indexOf
方法或Array#includes
方法檢查值。
// split the string by `|` symbol
var answer = cars[1].split('|');
// check value by checking index in array
if(answer.indexOf(val) > -1){
// do the rest here
}
您可以在|
分割元素,並使用includes
檢查值。
var cars = ["Saab", "Volvo|volkswagen", "BMW"];
function check(value, pos) {
return cars[pos].split('|').includes(value)
}
console.log(check('Volvo', 1))
console.log(check('volkswagen', 1))
console.log(check('Saab', 0))
,可以定義一個多維數組。
var cars = [["Saab"], ["Volvo", "volkswagen"], ["BMW"]];
if(cars[1].includes(val)){
}
你可以使用,而不是爲快速查找(這includes
和indexOf
不這樣做)的數組對象:
var cars = {
"Saab": 0,
"Volvo": 1,
"volkswagen": 1,
"BMW": 2
};
你的檢查會在固定時間內運行:
if (cars[answer] === 1) // ...
您可以創建一個散列對象:
var cars = ["Saab", "Volvo|volkswagen", "BMW"];
cars=cars.reduce(function(obj,el,i){
obj[i]=el.split("|");
return obj;
},{});
console.log("cars is",cars);
var guess=prompt("what is at 1?");
if(cars[1].includes(guess)){
alert("right");
}else{
alert("wrong");
}
所以現在汽車是這樣的:
cars[1]===["Volvo","volkswagen"];
所以,你可以檢查這個數組「在其大衆...
你可以有第一內部的第二陣列一個:
var cars = ["Saab", ["Volvo", "Volkswagen"], "BMW"];
您可以執行以下操作。
function check(array, position, value){
var values = array[position].split('|');
if(values.indexOf(value) >= 0)
alert("Right");
else alert("wrong");
}
var cars = ["Saab", "Volvo|volkswagen", "BMW"];
value = prompt("What is the value at position 1 ");
check(cars, 1, value);
你能告訴你的函數的代碼,所以我們可以說哪裏去適應呢? – trincot
但爲什麼你沒有使用對象在一個位置存儲多個值? –
你需要這樣做的用例是什麼? – charlietfl