0
我的目標是有一個對象如下圖所示:填充JavaScript對象與另一個對象的所有元素
var attrs = {
price : [0, 500000],
housesize : [0, 40],
lotwidth : [0, 30],
storeys : 'both',
bedroom : 0,
bathroom : 0
};
,但我不想硬代碼這一點,想從另一個對象的元素自動生成。物體看起來是這樣的:
var Defaults = {
steps : [10,3,3], // steps for the slider to jump
filters : {
rangeFilter : ['price', 'housesize', 'lotwidth'], // list of slider inputs
radioFilter : ['storeys'], // list of radio inputs
increamentFilter: ['bedroom', 'bathroom'],
}
};
所以我想建立一個對象,它的鍵將是filters
對象的所有值。我想這樣做的原因是因爲如果我爲filters
對象添加一些值,我不需要在attrs
對象中創建一個鍵。 attrs
對象中的鍵的數量與filters
對象中的元素完全相同。
任何幫助,將不勝感激。乾杯。
==========================================
** * ** * **編輯* ** * ** * *
這是我想出了目前
var attrs = {};
for (var key in Defaults.filters) {
var obj = Defaults.filters[key];
for (var prop in obj) {
attrs[obj[prop]] = 0;
}
}
但是,此刻我將新元素的所有鍵都加上0。我需要想出一種動態添加特定值的方法。可能是範圍過濾器內的另一個對象?
遍歷Defaults.filters'的'的屬性和迭代的每個值(陣列)。然後將數組中的每個值添加到對象。請參閱https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/for...in和https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects 。 –