2017-02-02 18 views
1

文字列を配列と照合し、文字列値を置き換える方法を知りたいと思います。配列と配列を照合して置換する

_viewIDからpageTitleが取得されていますが、これは配列から見栄えの良い名前に変更する必要があります。

var pageTitle = [ 
    ["ticket_dynamic", "Dynamic ticket page"], 
    ["ticket_regular", "Regular ticket page"], 
    ["cart_regular", "Regular cart page"] 
]; 
var _viewID = _viewID || []; 
//_viewID = ticket_dynamic 
// _viewID needs to be Dynamic ticket page 

答えて

5

より良いアプローチを使用すると、配列の配列で立ち往生している場合、このスニペットは何ができるオブジェクトではなく、

var pageTitle = { 
 
     "ticket_dynamic": "Dynamic ticket page", 
 
     "ticket_regular": "Regular ticket page", 
 
     "cart_regular": "Regular cart page" 
 
    } 
 
    var _viewID = "ticket_dynamic"; 
 
    var viewId = pageTitle[_viewID]; 
 
    console.log(viewId);

0

ような配列としてpageTitleを使用するようになります。

var pageTitle = [ 
    ["ticket_dynamic", "Dynamic ticket page"], 
    ["ticket_regular", "Regular ticket page"], 
    ["cart_regular", "Regular cart page"] 
]; 
var _viewID = "cart_regular"; 

var match = pageTitle.find((current) => current[0] == _viewID); 
_viewID = match ? match[1] : ""; 
console.log(_viewID); 
0

より良いoptio nはあなたのpageTitle変数のフォーマットを変更することです。代わりに、配列の配列を含む、単にオブジェクト

var pageTitle = { 
    "ticket_dynamic": "Dynamic ticket page", 
    "ticket_regular": "Regular ticket page", 
    "cart_regular": "Regular cart page", 
}; 

var _viewID = "ticket_dynamic"; 
// same as writing pageTitle.ticket_dynamic, or pageTitle["ticket_dynamic"] 
// but using the variable 
_viewID = pageTitle[_viewID]; 

// outputs "Dynamic ticket page" 
console.log(_viewID); 

を使用しかし、あなたはそれを行うことができない、とあなたは

var pageTitle = [ 
    ["ticket_dynamic", "Dynamic ticket page"], 
    ["ticket_regular", "Regular ticket page"], 
    ["cart_regular", "Regular cart page"] 
]; 

var _viewID = "ticket_dynamic"; 

for (var i = 0; i < pageTitle.length; i++) { 
    var keyValue = pageTitle[i]; // the array containing your key and value 

    // the first element [0] will be the key 
    if (keyValue[0] == _viewID) { 
     _viewID = keyValue[1]; 
     break; 
    } 

    if (i + 1 == pageTitle.length) { 
     // if last iteration occured, the matching key pair was not found 
     // so mark _viewID as false so you know that the match was not found 
     _viewID = false; 
    } 
} 

if (_viewID) console.log(_viewID); 
形式を変更できない場合の
関連する問題