簡體   English   中英

JavaScript-轉換對象或數組的值的最佳方法

[英]javascript - best way to convert values of object or array

因此,我有一堆需要轉換為新值的值。 基本上帶有傳說。 一秒鍾就會有意義。 到目前為止,我一直在使用關聯數組,或者在javascript上下文中使用對象作為我的圖例。

我的用法適用於單個字符串,有打擊的數組或對象。

var legend = {
    "html": "html5",
    "css2": "css3",
    "javascript": "jquery"  
}

var old_array = new Array("html", "css2", "javascript");
var new_array = [];

max = old_array.length;

// loop through values in original array
for(i=0;i<max;i++){
    for(var val in legend){
            // looping through values in legend.  If match, convert
        if(old_array[i] === val){
            new_array[i] = legend[val];
        }
    }
}
console.log(new_array);
document.write(new_array);

如果將其粘貼到firebug或jsfiddle中,它將顯示帶有轉換后值的新數組。

我決定將對象/關聯數組作為我的圖例,因為在需要轉換新值的情況下很容易擴展。 我認為它非常強大。 它適用於轉換單個字符串,如上所示的數組或對象(鍵或值)。

對於轉換值,這是最好的方法嗎? 有什么考慮嗎? 對於php來說,因為它是我經常使用的唯一其他語言,是否還會使用具有關聯數組的相同概念?

非常感謝您的幫助和建議!

干杯!

您沒有使用對象的功能,因為沒有理由遍歷對象。 它已經具有可以直接像這樣直接查找的鍵:

var legend = {
    "html": "html5",
    "css2": "css3",
    "javascript": "jquery"  
}

var old_array = new Array("html", "css2", "javascript");
var new_array = [];

max = old_array.length;

// loop through values in original array
for(var i=0;i<max;i++){
    // see if array value is a key in the legend object
    if ([old_array[i] in legend) {
        new_array.push(legend[old_array[i]]);
    }
}
console.log(new_array);
document.write(new_array);

我也將其更改為使用new_array.push()因此您不會最終得到帶有一些未定義值的數組,但是我不太確定要嘗試使用哪種最終結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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