我得到動態對象是這樣的:從基於屬性模式的對象獲取值?
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的[丙])},用對象 –