如何在不使用javascript

时间:2018-02-05 06:02:06

标签: javascript arrays loops built-in

我有一个类似[1,2,3,4,5,6,7]的数组如何在不使用javascript中的任何循环和内置方法的情况下搜索元素?

提前致谢

5 个答案:

答案 0 :(得分:2)

您可以对数组使用递归方法和rest parameters ...,而无需使用某些数组方法。



function find(search, array) {
    return function check(search, value, ...rest) {
        return search === value || rest.length && check(search, ... rest) || false;
    }(search, ...array);
}

console.log(find(1, [1, 2, 3, 4, 5, 6, 7]));
console.log(find(42, [1, 2, 3, 4, 5, 6, 7]));




答案 1 :(得分:0)

您可以使用indexOf方法搜索元素。 我希望这能帮到您。

var array = [1,2,3,4,5,6,7];
var searchElement = 5;
if(array.indexOf(searchElement)>-1) {
  console.log('element present in array');
} else {
console.log('element not present in array');
}

如果您不想搜索所有元素。首先遍历所有元素并构造一个对象。 对象的构造是一次性过程,并使用该对象来搜索元素。

var array = [1,2,3,4,5,6,7];
var obj = {};
for(var i=0;i<array.length;i++)
{
  if(obj.hasOwnProperty(array[i])) 
    continue;
  obj[array[i]] = true;
}
var searchElement = 7;
if(obj[searchElement] == true) {
  console.log("element present");
} else {
  console.log("element not present");
}

答案 2 :(得分:0)

find()方法返回数组中第一个满足提供的测试函数的元素的值。否则返回undefined。

var array1 = [5, 12, 8, 130, 44];

var found = array1.find(function(element) {
  return element > 10;
});

console.log(found);

答案 3 :(得分:0)

search中的元素无法O(1),但您可以检查Set中是否存在元素:

const set = new Set(array);
if(set.has(3)) console.log("3 is in array");

答案 4 :(得分:0)

这是可能的,但您必须拥有这样的JavaScript对象:

var Obj = {
    'a':1,
    'b':2,
    'c':3,
    'd':4,
    'e':5
};

如果没有搜索,您可以像这样访问您的元素:

console.log(Obj['a']);