获取对象中具有特定名称的javascript字段

时间:2013-07-22 11:57:23

标签: javascript arrays object

我对这些领域有反对意见:

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

我需要以d_开头的字段然后将它们推送到一个数组..

3 个答案:

答案 0 :(得分: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 :(得分: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

答案 2 :(得分:1)

Here是帮助你的小提琴希望

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