我得到这样的动态对象:
var myObject = {name: 'A', attribute13: x, attribute112: y, attribute4789: z};
我唯一知道的是,所有'属性'属性以前缀'属性'开头。 - 每个属性的后缀数字未知以及与对象关联的属性总数。
如何获取'属性的所有值? (在这种情况下,例如x,y和z)。
答案 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)
可能有所帮助。
将对象测试的键循环到所需的正则表达式,
示例摘录。
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);