我有一个类似[1,2,3,4,5,6,7]的数组如何在不使用javascript
中的任何循环和内置方法的情况下搜索元素?
提前致谢
答案 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']);