javascript - 如何获取数组中与另一个数组不匹配的第一项

标签 javascript jquery

我正在构建一个首选项列表,用户可以从列表中选择多个项目,然后按首选项顺序将它们呈现给他们。

我已经构建了一个原型(prototype),但我需要一些关于我想添加的功能的帮助。我希望用户看到他们选择的下一个项目将是什么偏好。

行为将是:

  • 首先向用户显示“选择您的第一偏好”
  • 当他们选择第一个偏好时,此选项会更改为“选择您的第二个偏好,依此类推。
  • 它还需要知道他们是否取消了某个偏好设置,并且在这样做时需要再次说“选择您的第一个偏好(或任何偏好)”。

我创建了一个 JSfiddle here

我想象能够以某种方式使用 grep 来做到这一点?

 var nextPreference = $.grep(preferencesAsText, function(v) {
      // return v !== First preference that isn't one of the preferences that are already selected
  });

任何帮助都会很棒,谢谢!

编辑:我通过执行以下操作成功获取了所选首选项列表中的项目数组:

var chosenPreferences = $('[data-schemeorder]').map(function() {
                        return $( this ).text();
                      })
                      .get();

  var arrayOfChosen = $.makeArray(chosenPreferences);

  console.log(arrayOfChosen);

所以基本上我只需要一种方法来找到不在这个列表中的第一个偏好,如果这有意义的话...... updated fiddle

最佳答案

为什么不使用schemePrefArray.length来获取所选元素的数量并显示您需要的文本?

显示的文本将为preferencesAsText[schemePrefArray.length]

没有?

关于javascript - 如何获取数组中与另一个数组不匹配的第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37720735/

相关文章:

javascript - Opencart定制: server-side script for rating

javascript - 在 Chrome 扩展中注入(inject) Jquery 对话框

javascript - 仅当某个 div 的高度大于设置高度时才显示 div?

jquery - 使用 JQuery 设置表单元素的样式

javascript - jQuery Ajax 回调如何工作?

javascript - 如何使用 AngularJS 过滤器格式化时间?

javascript - 主题标签的正则表达式一开始在 C# 中不起作用,但在 Javascript 中起作用

javascript - ajax 文本变量传递 0 或 NaN

javascript - 如何识别用户是否点击了 anchor 链接

javascript - Javascript中绝对旋转元素的环绕矩形和高度