我希望函数能够输出true或false,如果searchElement存在于数组中,它应该返回true或false。我知道我可以利用一个简单的for循环和if-else组合,但我想利用箭头函数.
我知道默认情况下'includes'函数存在于js中,我正试图使一个函数类似于它,这就是为什么我不想使用它
const somestuff=[1,2,54,23,65,132,76,'A','wth','Health is Wealth'];
function includes(array,searchElement){
const result=somestuff.filter(arrayElement=> arrayElement===searchElement)
if(arrayElement===searchElement){
console.log('true');
}
else{
console.log('false');
}
}
includes(somestuff,65);
这一行单独为我提供了arrayElement,我希望它返回true或false,这就是为什么我尝试了if else语句,但我不知道如何在箭头函数行中包含该代码块,我认为===应该返回true或false而不是数字本身,请让我知道我做错了什么,谢谢
const result=somestuff.filter(arrayElement=> arrayElement===searchElement)
可以用find函数而不是filter来实现。
现场演示:https://replit.com/@kallefrombosnia/PalatableStingySphere#index.js
// Define function
const includes = (array, element) =>{
return array.find(item => item === element) ? true : false;
}
// Log output in console
console.log(includes([1, 2, 3], 4));
const includes = (array, element) =>{
return array.find(item => item === element) ? true : false;
}
console.log(includes([1, 2, 3], 4));
这个问题的另一个解决方案是使用一些方法从Array原型
const includes = (array, pattern) => {
const comp_function = (element) => element === pattern
return array.some(comp_function)
}
k = [1, 2, 3, 'a', 'b', 'c']
includes(k, 1) // true
includes(k, 'a') // true
includes(k, '1') // false
includes(k, 'd') // false
为什么一定要实现那个"include ",
我们有Array.prototype.includes()
规范所以我们可以这样做
const array1 = [1, 2, 3];
array1.includes(2) // return true
在这里了解更多关于规范的信息
可以使用Array.prototype.find()。我解释过滤器是从具有相同模式的元素中删除和数组,但是你可以使用map()或find(),这是ES6的特性,使我们的生活更容易。这个演示将向您解释
map ()//
const result=somestuff.find(arrayElement=> {
if(arrayElement===searchElement){
console.log('true');
return arrayElement
}
else{
console.log('false');
})
})
//找到()
const result=somestuff.find(arrayElement=> arrayElement===searchElement)
最后,我们得到了这个
const somestuff=[1,2,54,23,65,132,76,'A','wth','Health is Wealth'];
function includes(array,searchElement){
const result=somestuff.find(arrayElement=> arrayElement===searchElement)
return result
}
includes(somestuff,65);
这就是我如何利用你们的帮助解决问题的
我需要变量searchElement存在的位置的索引,以及它是否存在。
const exists = (element) => element === searchElement;
console.log(' exists at index: '+somestuff.findIndex(exists) +' therefore: '+somestuff.some(exists));
意味着满足要求的值存储在exists变量中,现在我可以对它们应用数组方法,如findIndex()和some()
findIndex()告诉值的索引和some()将返回true,即使一个值满足要求
这是我最初想做的:
const somestuff=[1,2,54,23,65,132,76,'A','wth','Health is Wealth'];
const searchElement=54;
const result=somestuff.find(arrayElement=> {
if(arrayElement===searchElement){
console.log('true '+arrayElement);
console.log(somestuff.indexOf(searchElement));}
});