【JS】判断双层数组中每一项是否都不为空

该篇文章介绍了如何使用JavaScript编写一个名为`checkEmpty`的函数,用于判断给定的双层数组中每个子数组是否全部非空。通过`every`方法和数组遍历,函数返回所有子数组非空的布尔值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

判断双层数组中每一项是否都不为空,都不为空返回true,否则返回false

数组格式:
arr1 = [
  {
    list: [12, 25, 7, 18, 55]
  },
  {
    list: [36, 9]
  }
]
arr2 = [
  {
    list: [12, '', 7, '', 55]
  },
  {
    list: [36, 9]
  }
]

实现

export function checkEmpty(arr) {
  let result = null
  if (arr && arr.length) {
    let newArr = []
    for (let i = 0; i < arr.length; i++) {
      let bool = arr[i].list.every(v => !!v)
      newArr.push(bool)
    }
    // 注意:every方法若收到一个空数组,则在一切情况下都会返回 true。
    result = newArr.length ? newArr.every(v => !!v) : false
  }
  return result
}

let flag1 = checkEmpty(arr1)
let flag2 = checkEmpty(arr2)
console.log('flag1:', flag1)  // true
console.log('flag2:', flag2)  // false
在Vue中实现双层for循环遍历的数据选择框,并支持高亮显示和互不干扰,可以结合v-for指令以及事件处理机制来完成。首先假设你有一个二维数组`items`,外层数组为`outerArray`,内层数组为`innerArrays`。 HTML部分: ```html <div v-for="outerItem in outerArray"> <div class="parent-item" :class="{ highlighted: isSelected(outerItem) }"> {{ outerItem.name }} <ul> <li v-for="(innerItem, index) in outerItem.innerArrays" @click="selectInnerItem(outerItem, innerItem)" :class="{ selected: isItemSelected(outerItem, innerItem) }"> {{ innerItem.label }} </li> </ul> </div> </div> ``` JavaScript部分 (假设你在script标签或methods里定义): ```javascript export default { data() { return { outerArray: ..., // 假设你维护了一个全局对象来记录选中的状态 selectedItems: {}, }; }, methods: { isSelected(item) { return this.selectedItems[item.key]; // item.key是你自定义的标识符 }, selectInnerItem(outerItem, innerItem) { if (!this.isSelected(outerItem)) { this.selectedItems[outerItem.key] = {}; } this.selectedItems[outerItem.key][innerItem.id] = !this.selectedItems[outerItem.key][innerItem.id]; // 如果需要实时更新UI,这里可以触发视图渲染的更新 }, isItemSelected(outerItem, innerItem) { return this.selectedItems[outerItem.key] && this.selectedItems[outerItem.key][innerItem.id]; }, }, }; ``` 在这个例子中,当点击内层列表的一个元素时,会触发`selectInnerItem`方法,根据外层item的key和内层item的id判断是否应该高亮。同时,通过`isSelected`方法检查当前项是否已经被选中,`isItemSelected`则是为了确定某个具体的子项是否被选中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Komorebi゛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值