我有一个对象/数组语句,当它不是数组时,我想使其成为数组,我尝试的操作如下:
var statements = policy_blob['Statement'];
if(!$.isArray(statements)) {
var statements_ = statements;
statements = []
statements[0] = statements_;
}
这对我来说很好,但我正在寻找更好的选择。谁可以帮我这个事。
最佳答案
您可以使用三元语法在一行中完成此操作。
var statements = $.isArray(policy_blob['Statement']) ? policy_blob['Statement'] : [policy_blob['Statement']];
或者在缓存变量后执行。
var statements = policy_blob['Statement'];
statements = $.isArray(statements) ? statements : [statements];
// or using Short-circuit evaluation property of `||`(logical or)
var statements = policy_blob['Statement'];
$.isArray(statements) || statements = [statements];
参考:Ternary operator,Short-circuit evaluation