【问题标题】:Check to see if multiple values are in an array检查数组中是否有多个值
【发布时间】:2017-01-09 10:38:50
【问题描述】:

这和这个问题超级相似:How to check whether multiple values exist within an Javascript array

基本上我需要一个数组并说它是否包含以下2个值,没有特定的顺序

但是

我不能使用任何外部库,例如 j.query,因为这是学校作业。我知道你不想为我做我的任务我只需要这个小小的帮助来回答一个更大的问题(我放这一段的唯一原因是因为我的其他问题之一没有得到答案,因为每个人都说:“这是你的学校作业,你来做”这很好,但我不知道从哪里开始,所以是的......)

提前致谢。

扇子

【问题讨论】:

  • 请添加一些用例、想要的结果以及您尝试过的内容。也请看这里:minimal reproducible example
  • 这里的第一步:问你的老师。您不希望他们看到这个问题,尤其是在没有发布任何尝试的情况下。几年前我在大学遇到了麻烦,因为有人给了我我的答案,而我已经尝试了一个解决方案。
  • “但我不知道从哪里开始”,如果它不是一个程序,如果你的老师给你两个列表(你知道,纸),并告诉你要检查一个列表中的所有项目是否都包含在另一个列表中,您将如何做/处理?
  • 如果您是一名学生程序员,那么我建议您从基本的for 循环开始,然后检查数组中的每个项目。另请注意,您链接到的问题有几个不使用 jQuery 或其他库的答案。

标签: javascript arrays


【解决方案1】:

如果你只需要一个函数

var arr = [1,2,3,4]

contains(2,4, arr) // true

function contains(a, b, arr){
  return arr.indexOf(a) > -1 && arr.indexOf(b) > -1
}

或者你也可以添加一个原型

Array.prototype.containsTwo = function(a, b){
  return this.indexOf(a) > -1 && this.indexOf(b) > -1
}

[1,2,3].containsTwo(1,3) // true

如果你想检查多个值而不仅仅是两个

Array.prototype.containsLot = function(){
  arguments.every(function(v){
    return this.indexOf(v) > -1
  })
}

[1,22,33,321,41,4].containsLot(1,33,22,4) // true
[1,22,33,321,41,4].containsLot(1,22,33,9) // false

【讨论】:

    猜你喜欢
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2020-10-25
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    相关资源
    最近更新 更多