javascript - 如何检查数组中剩余的项目?

标签 javascript backbone.js

假设我有一个数组

arr = ["one", "two", "three"]

和逻辑

if "one" in arr
  processOne()

if "two" in arr
 processTwo()

if <<there is another items in array>>
  processOthers()

lastif中应该写什么条件? 我找到了 _.difference 函数,但我不想多次写入元素(“一”、“二”...)。

编辑

  1. if else if else 不合适,因为我需要调用 0..N 个流程函数。
  2. 这是数组的示例。但如果这段代码是对象,它会是什么样子呢?
  3. 数组没有重复项

最佳答案

通过使用.indexOf方法。

var index;
if ( (index = arr.indexOf('one')) !== -1) {
  processOne();
  arr.splice(index, 1);
}

if ((index = arr.indexOf('two')) !== -1) {
  processTwo();
  arr.splice(index, 1);
}

if (arr.length > 0) {
  processOthers();
}

更新:或者你可以循环数组。

var one = false, two = false, others = false;
for (var i = 0; i < arr.length; i++) {
  if (arr[i] === 'one' && !one) {
    processOne();
    one = true;
  } else if (arr[i] === 'two' && !two) {
    processTwo();
    two = true;
  } else (!others) {
    processOthers();
    others = true;
  }
  if (one && two && others) break;
} 

关于javascript - 如何检查数组中剩余的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12139844/

相关文章:

jquery - 如何检查页面上是否已经存在具有ID的对象?

javascript - 当设置对话框样式时,我应该使用什么作为选择器?

javascript - 渲染backbone.js Collection View 时遇到问题。在我的初始化函数中获取“未定义”的 "Uncaught TypeError: Cannot call method '

javascript - 检查 Backbone.js 中的引荐来源网址

javascript - Puppeteer 失败时自定义错误消息

javascript - HTML 页面,隐藏的 div 出现

javascript - Backbone.js 和 PhoneGap,单页还是多页?

jquery - Backbone .js和node.js与jQuery完全不同吗?

backbone.js - 覆盖 Marionette compositeview 渲染的正确方法是什么

javascript - 在div内添加随机数量的图像