将 JavaScript 对象数组 属性 与字符串进行比较

Compare JavaScript Object-Array Property with String

你好,我有一个关于我的 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() 的第二个参数传递对我来说意义不大,并且将 return 值与 1 进行比较也不行。如果您想做的是查看搜索文本是否出现在名称的开头,您可以这样做:

if (myArray[i].name.indexOf(SearchString) == 0)