我有一个我正在创建的搜索功能,我正在尝试通过多个对象执行搜索来对对象的name属性执行搜索以返回结果。我也试图使代码不区分大小写,所以如果用户输入' CaT'或者' cat'在搜索领域,他们仍然会返回'#34; Cat"宾语。我是JS的新用户,熟悉toLowerCase / toUpperCase但是我很难与reg / exp斗争。如果有人可以提供任何关于我这个代码错误的提示?
function search(animals, name) {
if (animals.toLowerCase() === name.toLowerCase()) {
return animals;
}
}
//新编辑 提示问题和原始代码如下:
实施一个名为search
的函数,其签名为search(animals, name) { //... }
:
- 采用表示animals
数组的参数。
- 采用表示字符串的参数,即执行搜索的动物的名称。
- 查看animals
数组,如果存在具有该名称的动物,则返回动物的对象。
- 如果不存在具有该名称的动物,则返回null
function search(animals, name) {
for (var i = 0; i < animals.length-1; i++) {
if (animals[i].name === name) {
return animals[i];
} else {
console.log(null)
}
}
}
如果在创建的EXACT外壳中输入了它,则可以匹配对象的属性。我试图做的就是使功能适用于任何外壳。
答案 0 :(得分:0)
试试这个
var animals = ["cat", "dog", "cow"];
function search(animal, name) {
if (animal.toLowerCase() === name.toLowerCase()) {
console.log("Matchs with : " + animal);
} else {
console.log("Not match with : " + animal);
}
}
function myFunction() {
console.clear();
var nameInput = document.getElementById("myText").value;
animals.forEach(function(entry) {
search(entry, nameInput);
});
}
Animal Name: <input type="text" id="myText" />
<button onclick="myFunction()">Search</button>
答案 1 :(得分:-3)
function search(animals, name) {
if (animals.toLowerCase() === name.toLowerCase()) {
var equal = animals.toLocaleLowerCase() === name.toLocaleLowerCase();
console.log(equal);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<button onclick="search('abc','AbC')">Click me</button>