2016-01-24 52 views
0

我有一個目標:如何在對象中使用特定後綴過濾JavaScript中的鍵/值?

{ 
a_suff:"Something" 
b_suff: "Value", 
c: "Value", 
d: "Value, 
e_suff: "Value" 
} 

我想有一個返回值是所有在「_suff」結尾的那些功能。什麼是最好的方式來做到這一點?

現在我做:

function getFilterKeys(filter) { 
    var filtered = {}; 
    for(var key in myobject) { 
     if(key.endsWith(filter)) { 
     filtered[key] = myobject[key]; 
     } 
    } 
    return filtered; 
} 

盼望一個更簡單的方法或一些內置的原型方法。

+0

隨着編輯包括代碼:該代碼是足夠的,它可能枚舉原型的屬性(使用hasOwnProperty警衛,如果這很重要)..所有的變化將以某種方式斟酌 - 使用Array枚舉方法,使用Object.keys,使用lodash,使用更高階的函數等等。然而,*沒有標準的*'Object.filter'函數。 – user2864740

回答

0

在這裏你的方法是一樣簡單,你可以得到。您已經在使用新的字符串方法endsWith,它是ES2015的一部分。在此之前,你需要做額外的工作或定義一個輔助函數。因爲你正在過濾掉某些屬性,所以你需要迭代所有的鍵,這意味着O(n)是你能做的最好的。

相關問題