您好,我有一个关于我的 javascript 数组的简单问题:
var firstrecord = {
name: 'Luca',
age: '19'
};
var secondrecord = {
name: 'Hans',
age: '25'
}
var myArray = [];
myArray.push(firstrecord,secondrecord);
好吧,现在我有一个 var SearchString = "Lu"
。
我会做什么:
for (var i = 0; i < myArray.length; i++) {
if (myArray[i].[name].IndexOf(SearchString, i)) != 1){
return myArray[i];
}
}
但这行不通。这个问题有什么解决办法吗?
更新:indexOf != IndexOf 提醒自己..在滥用这些功能之前先查找一下它们的用途。 :)
最佳答案
这里有两个错误:
if (myArray[i].[name].IndexOf(SearchString, i)) != 1){
首先,它是.indexOf()
,小写的“i”。其次,您只需要 .
和 [ ]
之一:
if (myArray[i].name.indexOf(SearchString, i)) != 1)
现在,我不知道您想在这里做什么,但是将 i
作为 .indexOf()
的第二个参数传递并不适用对我来说很有意义,而且将返回值与 1
进行比较也没有意义。如果您想要查看搜索文本是否出现在名称开头,您可以这样做:
if (myArray[i].name.indexOf(SearchString) == 0)
关于javascript - 比较 JavaScript 对象数组属性与字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799936/