我得到动态对象是这样的:从基于属性模式的对象获取值?
var myObject = {name: 'A', attribute13: x, attribute112: y, attribute4789: z};
我唯一知道的是,所有的“属性”属性带有前缀“属性”开始 - 每个属性后面添加数字是未知的,以及总数的与对象关联的属性。
如何获取'属性'的所有值? (在这种情况下,例如x,y和z)。
我得到动态对象是这样的:从基于属性模式的对象获取值?
var myObject = {name: 'A', attribute13: x, attribute112: y, attribute4789: z};
我唯一知道的是,所有的“属性”属性带有前缀“属性”开始 - 每个属性后面添加数字是未知的,以及总数的与对象关联的属性。
如何获取'属性'的所有值? (在这种情况下,例如x,y和z)。
你可以用正则表达式,它匹配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]);
}
});
您可以通过Object.keys
获取对象的所有属性,例如,
Object.keys(myObject).filter(s => s.startsWith('attribute'))
为了获得性能与“属性”,你可以使用下面的代码片段开头的所有值:
Object.keys(myObject).filter(s => s.startsWith('attribute')).map(x => myObject[x])
的属性迭代需要小心用'startsWith '和浏览器支持例如没有IE浏览器,本地手机目前很差https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith –
筛选。 Object.values(object_name)
使
var myObject = {name: 'A', attribute13: 'x', attribute112: 'y', attribute4789: 'z'};
var values = Object.values(myObject);
console.log(values);
您可以使用for...in
循环迭代的属性该对象的值的数组:
for (var prop in myObject) {
if (/^attribute/.test(prop)) {
// Do something
}
}
在循环可能的帮助。
遍历针对所需regex对象测试的键,
例片段。
var myObject = {
name: 'A',
attribute13: 'x',
attribute112: 'y',
attribute4789: 'z'
};
for (var key in myObject) {
if (/^(attribute)/g.test(key)) {
console.log(myObject[key])
}
}
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);
使用用于(在myObject的变种丙){的console.log(myObject的[丙])},用对象 –