我有這樣的領域對象:獲取具有特定名稱的JavaScript字段對象
{
d_name: { field_name: true },
d_date: { field_date: ISODate() },
status: 'success'
}
我需要開始d_
字段,然後他們推到一個數組..
我有這樣的領域對象:獲取具有特定名稱的JavaScript字段對象
{
d_name: { field_name: true },
d_date: { field_date: ISODate() },
status: 'success'
}
我需要開始d_
字段,然後他們推到一個數組..
我需要的字段...
你的意思是你需要找鑰匙嗎?如果是這樣的:
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.keys
,Array.prototype.filter
和Array.prototype.map
),所以根據您的環境,您可能需要適當的墊片。
這裏是兩個片段的working examples。
可以遍歷對象的鍵,然後比較關鍵名稱的開頭:
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];
}
}
Here是小提琴希望它可以幫助你
var q = [];
for(k in s)
{
if(k.indexOf("d_") == 0){
q.push(s[k]);
}
'String.prototype.startsWith'是ES6建議的一部分。它在許多環境中都不可用。在Chrome Canary中,你的小提琴會拋出一個'TypeError'。 –
是的,你說得對,我現在用indexOf來糾正它 –