[英]Mootools convert Hash to array
我有Hash obj:
var obj = {a,b,c,...};
obj = $H(obj);
我需要將其轉換為簡單數組
[a,b,c,..]
我能怎么做?
謝謝。
因為你使用$ HI我假設較舊的mootools,1.2.x,因為它在1.3中被棄用而支持新的Object。 構造
哈希有一個.each方法:
var Hobj = $H({
tool: "bar",
ghost: "goblin"
});
var arr = [];
Hobj.each(function(value, key) {
arr.push(value); // what to do with key?
});
console.log(arr);
使用鍵而不是數組鍵來抓取整個對象的替代方法:
Hobj.each(function(value, key) {
var obj = {};
obj[key] = value;
arr.push(obj);
});
Object.getValues(myObject)
獲取所有值的數組。
Object.getKeys(myObject)
獲取一個鍵數組。
對於1.2,簡單地說, Hash
提供了相同的方法。
並且不要使用Objects {}
來存儲列表,例如您的示例。 Arrays
用於列表, Objects
用於關聯數組 。
編輯 :
由於版本1.3 Object.getValues
和Object.getKeys
已被棄用並由Object.keys
resp Object.values
替換。
假設您想要數組中的值:
var arr = [];
for(var prop in obj){
if(obj.hasOwnProperty(prop)){
arr.push(obj[prop]);
}
}
如果您希望屬性名稱在數組中:
var arr = [];
for(var prop in obj){
if(obj.hasOwnProperty(prop)){
arr.push(prop);
}
}
hasOwnProperty調用很重要,因為它會過濾掉你在結果數組中不想要的mooTools哈希類的繼承函數和私有成員
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.