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

How can I check if an array is set and contains a value at the same time?

本文关键字:设置 包含值 是否 数组 何检查 检查      更新时间:2023-09-26

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

如何使此代码更短更好?我相信Javascript有办法做得更好。。。(当阵列为空时,控制台中没有很多错误…)

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

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

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

我认为你应该能够在的条件下立即完成任务

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

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

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

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

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