我有这样的领域对象:获取具有特定名称的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来纠正它 –