我虛心地尋求幫助。我正在開發一個項目,在該項目中,我需要設置一個搜索來查找所有實例,在一個Object內部,一個特定的值等於用戶搜索的任何術語。我發現下面的代碼:在Javascript對象中查找特定值
function getObjects(obj, key, val) {
var objects = [];
for (var i in obj) {
if (!obj.hasOwnProperty(i)) continue;
if (typeof obj[i] == 'object') {
objects = objects.concat(getObjects(obj[i], key, val));
} else if (i == key && obj[key] == val) {
objects.push(obj);
}
}
return objects;
}
here(以確保適當的信貸給出),偉大的工程,但是我正在尋找擴大這個代碼的功能有所幫助,包括以尋找更多的能力而不是一次一個元素,並且在返回時,還會在返回的相同對象中顯示其他值。作爲一個例子,使用上面的代碼,返回是簡單的[對象]:
我希望做的是追加[>對象]與對象的另一個變量值,可能是ID或描述,這兩者都是返回結果的一部分。因此,所需的結果將會像「Object:ID = b01」或「Object:Desc = This is Maple」這樣的東西,這將允許我的用戶快速查看他們需要查看哪個結果。
非常感謝您的協助!
考慮使用jsonpath – Alnitak
所以,如果它們可以在時間搜索一個以上的元素將在對象被添加到對象數組,如果它匹配所有元素或任何元素? – Tom
對不起,應該是更具體。如果他們在搜索中有多個元素,它將是AND而不是OR,因此全部。 –