簡體   English   中英

Mootools將Hash轉換為數組

[英]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.getValuesObject.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM