从属性模式的对象中获取值?

时间:2017-01-27 10:14:50

标签: javascript

我得到这样的动态对象:

 var myObject = {name: 'A', attribute13: x, attribute112: y, attribute4789: z};

我唯一知道的是,所有'属性'属性以前缀'属性'开头。 - 每个属性的后缀数字未知以及与对象关联的属性总数。

如何获取'属性的所有值? (在这种情况下,例如x,y和z)。

6 个答案:

答案 0 :(得分:3)

您可以通过Object.keys获取对象的所有属性,例如

Object.keys(myObject).filter(s => s.startsWith('attribute'))

要获取以“属性”开头的所有属性值,您可以使用以下代码段:

Object.keys(myObject).filter(s => s.startsWith('attribute')).map(x => myObject[x])

答案 1 :(得分:1)

您可以使用正则表达式进行检查,该正则表达式与字符串开头的attribute匹配。



var myObject = { name: 'A', attribute13: 'x', attribute112: 'y', attribute4789: 'z' };

Object.keys(myObject).forEach(function (key) {
    if (key.match(/^attribute/)) {
        console.log(myObject[key]);
    }
});




答案 2 :(得分:0)

像这样。Object.values(object_name)制作一个这个对象的值数组



 var myObject = {name: 'A', attribute13: 'x', attribute112: 'y', attribute4789: 'z'};

var values = Object.values(myObject);
console.log(values);




答案 3 :(得分:0)

您可以使用for...in循环来迭代属性:

for (var prop in myObject) {
    if (/^attribute/.test(prop)) {
        // Do something
    }
}

答案 4 :(得分:0)

for循环中的

可能有所帮助。

将对象测试的键循环到所需的正则表达式,

示例摘录。



var myObject = {
  name: 'A',
  attribute13: 'x',
  attribute112: 'y',
  attribute4789: 'z'
};

for (var key in myObject) {
  if (/^(attribute)/g.test(key)) {
    console.log(myObject[key])
  }
}




答案 5 :(得分:0)

var myObject = {name: 'A', attribute13: x, attribute112: y, attribute4789: z};
var a = [];
for (var property in myObject) {
if (myObject.hasOwnProperty(property)) {
    var exclude = "attribute"
    var str = property;
    var res = str.substring(exclude.length);
    a.push(res);
}
}
console.log(a);