查找两个数组之一的项目 - javascript

时间:2018-01-29 18:02:57

标签: javascript arrays

我有,问题是如何找到列表中列出的项目并执行某些操作。 我需要根据变量来做不同的事情。 我在其他for循环中尝试了for循环,但它只搜索每个数组的第一个元素。

Vagrant.configure("2") do |config|

   config.vm.define "build" do |build|
      build.vm.box = "centos/7"
      build.vm.provider "virtualbox"
      build.vm.hostname = "server-a"
      build.vm.network "private_network", ip: "192.168.50.4"
   end

   config.vm.define "test" do |test|
      test.vm.box = "centos/7"
      test.vm.provider "virtualbox"
      test.vm.hostname = "server"
      test.vm.network "private_network", ip: "192.168.50.5"
   end
end

名称变量由用户

定义

5 个答案:

答案 0 :(得分:4)

这是一个很简单的新功能:

var array1 = ['a', 'b', 'c'];
var array2 = ['d','e','f'];

var name = 'e';
// use && if it has to be in both arrays
// use || if it has to be in either of the arrays
if (array1.includes(name) || array2.includes(name)) {
  // do fancy things!
}

你需要为互联网资源管理器提供一个polyfill:https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

修改

所以当你在依赖于哪个数组时必须做两个不同的动作时,它基本上是这样的:

if (array1.includes(name)) {
   // do this
} else if (array2.includes(name)) {
   // do this
}

答案 1 :(得分:2)

您可以在javascript中使用indexOf方法。

var array1 = ['a', 'b', 'c'];
var array2 = ['d','e','f'];

var name = 'e';
if (array1.indexOf(name) != -1) {
    //do something
} else if (array2.indexOf(name) != -1) {
    //do something 2
} else {
    console.log("error");
}

有关详细信息,请参阅here

答案 2 :(得分:0)

以下是使用filter方法的解决方案:

var array1 = ['a', 'b', 'c'];
var array2 = ['d','e','f'];

var name = 'e';

var bothArraysContainName = (arrayOne, arrayTwo, name) => {
  var resOne = arrayOne.filter( (val) => val === name)
  var resTwo = arrayTwo.filter( (val) => val === name)
  return resOne.length > 0 && resTwo.length > 0
}

console.log(bothArraysContainName(array1, array2, name));

答案 3 :(得分:0)

6

或,

PM> cd [migrations directory]
PM> Add-Migration -Name [version label] -Context [your context] -s [startup project]

结果现在是一个数组,可以为空或包含一个元素。 你可以对结果进行测试并做你的事情。

答案 4 :(得分:-1)

您可以使用[].indexOf() 像这样:

if(array1.indexOf(name) == -1){
 if(array2.indexOf(name) == -1){
  Console.log("not found");
 } else { /*Found in array2*/ }
} else {
/*Found in array1*/
}