0

我需要检查 ['pk'] 在数组的第一项中是否可用,然后才做一些事情。数组并不总是被填充,所以我最终得到了一个感觉有点臃肿的代码块。

我怎样才能使这段代码更短更好?我确信 Javascript 有办法更好地做到这一点......(当数组为空时,控制台中不会出现很多错误......)

var $selectedItem = $scope.selectedItem[0] || null;
if($selectedItem) {
  var $selectedPK = $selectedItem['pk'];
}
if($selectedPK) { ... }
4

3 回答 3

3

由于没有进一步检查布尔值条件的第一部分是否为false,因此更加简洁:

if ($selectedItem && $selectedItem['pk']) {
  ...
}

我认为您应该能够立即在条件下进行分配:

if ($selectedItem && ($selectedPk = $selectedItem['pk'])) {
  ...
}
于 2013-07-28T14:28:50.780 回答
0

这里还有一个 ;)....

if ($scope.selectedItem[0] && $scope.selectedItem[0].pk!==undefined) {
 // do stuff
}
于 2013-07-28T14:31:48.103 回答
0

听起来你至少可以将两者结合起来

var $selectedItem = $scope.selectedItem[0] || null;
if($selectedItem) {
  var $selectedPK = $selectedItem['pk'];
  if($selectedPK) { 
    ... 
  }
}
于 2013-07-28T14:26:56.587 回答