我有一个对象/数组语句,当它不是数组时,我想使其成为数组,我尝试的操作如下:

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 operatorShort-circuit evaluation

10-08 01:34