2013-07-22 104 views

回答

1

我需要的字段...

你的意思是你需要找鑰匙嗎?如果是這樣的:

var d_keys = Object.keys(obj).filter(function (key) { 
    return !key.indexOf("d_"); 
}); 

如果你真的想要的值:

var d_values = Object.keys(obj).filter(function (key) { 
    return !key.indexOf("d_"); 
}).map(function (key) { 
    return obj[key]; 
}); 

注意,這裏使用的各種ES5方法(Object.keysArray.prototype.filterArray.prototype.map),所以根據您的環境,您可能需要適當的墊片。

這裏是兩個片段的working examples

1

可以遍歷對象的鍵,然後比較關鍵名稱的開頭:

var myObj = { 
    d_name: { field_name: true }, 
    d_date: { field_date: ISODate() }, 
    status: 'success' 
}; 
var outArray = {}; 
for(var key in myObj) { 
    if(key.length >= 2 && key.substr(0,2) == "d_") { 
    outArray[key] = myObj[key]; 
    } 
} 
1

Here是小提琴希望它可以幫助你

var q = []; 
for(k in s) 
{ 
if(k.indexOf("d_") == 0){ 
q.push(s[k]); 
} 
+0

'String.prototype.startsWith'是ES6建議的一部分。它在許多環境中都不可用。在Chrome Canary中,你的小提琴會拋出一個'TypeError'。 –

+0

是的,你說得對,我現在用indexOf來糾正它 –

相關問題