2015-04-22 74 views
0

你好我有一個關於我的JavaScript數組一個簡單的問題:比較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 提醒自己..首先查找在濫用它們之前使用這些函數。 :)

+0

它在形式上是非正統的使用簡單變量的名稱領先的大寫字母。通常大寫是爲構造函數名稱保留的。 – Pointy

回答

3

兩個錯誤的位置:

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) 
+0

太快了!你有我,我通過我,那是不正確的,從另一個嘗試。你的解決方案就像一個魅力:) – Unlockedluca

相關問題