Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用值(Javascript)返回数组_Javascript_Arrays - Fatal编程技术网

使用值(Javascript)返回数组

使用值(Javascript)返回数组,javascript,arrays,Javascript,Arrays,如果您只知道数组的一个值,是否可以获取该数组 我有两个数组,想找出哪个数组有变量: var fruit = ["apple","banana","orange"]; var veggie = ["carrot","pea","corn"]; alert("An apple is a " + /*return array with value "apple"*/); 可以用Javascript实现这一点吗?谢谢将警报包装在if/else语句中,并检查“apple”索引。如果fruit.index

如果您只知道数组的一个值,是否可以获取该数组

我有两个数组,想找出哪个数组有变量:

var fruit = ["apple","banana","orange"];
var veggie = ["carrot","pea","corn"];
alert("An apple is a " + /*return array with value "apple"*/);

可以用Javascript实现这一点吗?谢谢

将警报包装在if/else语句中,并检查“apple”索引。如果
fruit.indexOf('apple')!=-1
那么它必须是一个水果。

您可以使用如下函数,并在每个相关数组上调用它:

function contains(a, obj) {   //a is the array to check, and obj the object you are looking for
    var i = a.length;
    while (i--) {
       if (a[i] === obj) {
           return true;
       }
    }
    return false;
}

我将使用一个对象来包含各种类型:

var type = {
  fruit: ["apple", "banana", "orange"],
  veggie: ["carrot", "pea", "corn"]
}
如果要查找数组的名称,对象中的数组上的对象处于循环中,请使用
indexOf
测试对象是否存在

function findThing(thing) {
  for (var k in type) {
    if (type[k].indexOf(thing) > -1) return k;
  }
  return 'unknown';
}

console.log('An apple is a ' + findThing('apple')); // An apple is a fruit
console.log('An froom is a ' + findThing('froom')); // An froom is a unknown

另一方面,如果希望返回更多信息(如类型、大小和其他项目),可以执行以下操作:

function returnArrayOfThing(thing) {
  for (var k in type) {
    if (type[k].indexOf(thing) > -1) return k + ' which contains ' + type[k].length + ' items: ' + type[k];
  }
  return 'unknown';
}

console.log('An apple is in ' + returnArrayOfThing('apple')); // An apple is in fruit which contains 3 items: apple,banana,orange

如果您只有这两个类别,则可以执行简单的If检查:

var fruit = ["apple","banana","orange"];
var veggie = ["carrot","pea","corn"];

var typeOfApple = 'unknown';

if (fruit.indexOf('apple') !== -1) {
  typeOfApple = 'fruit';
} else if (veggie.indexOf('apple') !== -1) {
  typeOfApple = 'veggie';
}
alert("An apple is a " + typeOfApple);
如果您有更多的类别(或只是希望代码更健壮),则可以使用带有键的对象作为类别,并使用带有该类别项的值数组:

var types = {
  fruit : ["apple","banana","orange"],
  veggie : ["carrot","pea","corn"]
}
然后,您可以检查每个类别是否包含您的项目:

var typeOfApple = 'unknown';

for (var type in types) {
  if (types[type].indexOf('apple') !== -1)
    typeOfApple = type;
}


alert("An apple is a " + typeOfApple);

使用对象包含这两个数组,如下所示


你能更具体地说明你在问什么吗!谷歌搜索“JavaScript数组包含值函数”,然后使用该函数确定水果是否包含“苹果”而
vegige
没有。假设你不能自己编写这个函数,这是一个公平的假设,考虑到你的问题^ ^我可以使用类似
fruit.contains(“apple”)
,但我正在尝试获取它,所以我不需要知道
var-fruit
var food = {
    fruit : ["apple","banana","orange"],
    veggie : ["carrot","pea","corn"]
}

var arr = getFood('apple', food);
//returns ["apple","banana","orange"];

 var arr2 = getFood('pea', food);
//returns ["carrot","pea","corn"];

function getFood(item, food){
    for (var key in food){
        if(food[key].indexOf(item) != -1){
            return food[key];
        }
    }
}