我如何在不使用 javascript 中的任何循环的情况下搜索元素

How can i search for an element without using any loops in javascript

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

提前致谢

您可以使用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");
}

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

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

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

console.log(found);

对于 O(1) 中的元素,您不能 search,但是您可以检查 Set 中是否存在元素:

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

可以,但是你必须有一个像这样的JavaScript对象:

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

无需搜索,您可以像这样访问您的元素:

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

您可以对数组使用递归方法和 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]));