I am using a switch statement to search for undefined values to manually change it. but I am having trouble using boolean expressions as I would when using an if statement.
Like: if statemant
if(Item1 == undefined)
{
item1 ="No";
}
else if (Item2 == undefined)
{
item2 = "No";
}
etc..
I tried this with the switch statement :
switch (array) {
case (item1 == undefined):
item1 = "No";
console.log('item1 result', item1 );
break;
case item2 == undefined:
item2 = "No";
console.log('item2 result', item2 );
break;
default:
}
It does not run through the switch statement, except for when I remove == undefined
and only use item1
. then it works?
The switch
cannot evaluate values of the array like that and that is why it does not run through the switch statement. You need to define which value of that array you want to switch.
Inside case statement
you also cannot use expression, you have to use a value there as well.
So, if you are dead set on using switch
for what you are trying to accomplish, you can do something like this:
item1 = array[1];
switch(item1) {
case "undefined":
// so on
break;
}
But, based on your example you are probably trying to check if the values are set or not, for that if
statements are still the best choice rather than switch.
$arr = []; // Your array
if(typeof $arr[0] == "undefined") {
$arr[0] = "No";
}
switch can be applied only 1 variable as follows:
switch (array) {
case 'undefined':
item1 = "No";
console.log('item1 result', item1 );
break;
case array.length:
item2 = "No";
console.log('item2 result', item2 );
break;
}
for(var i=0;i<array.length;i++){
switch(array[i]) {
case "undefined":
//so on
break;
}
}
Useful when reading arguments of function.
Short and simple approach would be
item1 = (item1 == null)? item1 : 'no';
item2 = (item2 == null)? item2 : 'no';
If item
is undefined
or null
it will assign value otherwise that particular item.
ps this is for checking null or undefined and better than using switch
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.