如何检查数组是否已设置并同时包含值?

时间:2013-07-28 14:21:15

标签: javascript

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

如何让这段代码更短更好?我确定Javascript有办法更好地做到这一点......(当数组为空时,控制台中没有很多错误......)

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

3 个答案:

答案 0 :(得分:3)

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

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

我认为你应该能够立即完成任务:

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

还有一个;)....

if ($scope.selectedItem[0] && $scope.selectedItem[0].pk!==undefined) {
 // do stuff
}