1

我有这样的领域的对象:

{
   d_name: { field_name: true },
   d_date: { field_date: ISODate() },
   status: 'success'
}

我需要从开头获取字段d_,然后将它们推送到一个数组..

4

3 回答 3

1

是小提琴希望它可以帮助你

 var q = [];
for(k in s)
{
 if(k.indexOf("d_") == 0){
 q.push(s[k]);
}
于 2013-07-22T12:06:14.303 回答
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,因此根据您的环境,您可能需要适当的垫片。

以下是两个片段的工作示例

于 2013-07-22T12:01:28.353 回答
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];
  }
}
于 2013-07-22T12:01:13.737 回答