有人可以解释这个JS LINE吗?数据是一个对象。
var list = data == null ? [] : (data.wine instanceof Array ? data.wine : [data.wine]);
答案 0 :(得分:3)
基本上就是这样;
var list;
if (data == null) {
list = [];
} else {
if (data.wine instanceof Array) {
list = data.wine;
} else {
list = [data.wine];
}
}
它由嵌套的ternary operators组成。三元运算符具有以下形式;
x ? y : z
评估x
,如果真实,则返回y
,否则返回z
。
答案 1 :(得分:1)
if (data == null) {
list = []
} else {
if (data.wine instanceof Array) {
list = data.wine
else {
list = [data.wine];
}
}
答案 2 :(得分:1)
这意味着:
If data is null
assign an empty array to list
else
if data.wine is of type Array
assign data.wine to list
else
create an array with data.wine as the only item and assign that array to list
end
end
答案 3 :(得分:0)
作为if-else声明:
if (data == null)
list = []; // list is an empty array now
else if (data.wine instanceof Array)
list = data.wine; // data.wine is an array; assign it to list
else
list = [data.wine]; // make a new array with data.wine as element
答案 4 :(得分:0)
javascript中的条件运算符
条件运算符
JavaScript还包含一个条件运算符,它根据某些条件为变量赋值。 语法
variablename=(condition)?value1:value2
var variablename;
if(condition true){
variablename=value1;
}
else{
variablename=value1;
}
您的代码评估如下:
var list;
if (data == null) {
list = [];
} else {
if (data.wine instanceof Array) {
list = data.wine;
} else {
list = [data.wine];
}
}