John Ken
John Ken

Reputation: 962

How to concatenate javascript one varaibles into another

i have two arrays,based on the language selection have to change labels values

var GlobalArray = { 
    lang:'english'
}


var arrayValues = {

    data: {
         english:
        {
          fname: 'FirstName',

          },
           spanish:
        {
          fname: '1221',

          }
    }
}

when lang got english ,english array need to show. when spanish value got in lang, spanish fname and lname should show .

try to concatenate both array value and global array in javascript,it showing issues.like below

arrayValues.data.""+GlobalArray.lang+"".fname

Upvotes: 0

Views: 191

Answers (2)

jo_va
jo_va

Reputation: 13993

Since your value is contained in a variable (GlobalArray.lang property), you have to use bracket access notation to access the right sub-object in arrayValues.data:

const fname = arrayValues.data[GlobalArray.lang].fname

To make it work with concatenation, you would have to evaluate the resulting expression with eval(), which I do not recommend:

const fname = eval('arrayValues.data.' + GlobalArray.lang + '.fname')

Here is an example:

const GlobalArray = { 
  lang: 'english'
}

const arrayValues = {
  data: {
   english: { fname: 'FirstName' },
   spanish: { fname: '1221'  }
  }
}

function langChanged(value) {
  GlobalArray.lang = value;
  console.log(arrayValues.data[GlobalArray.lang].fname);
  console.log(eval('arrayValues.data.' + GlobalArray.lang + '.fname'));
}

langChanged('english');
Select a language:
<select onchange="langChanged(event.target.value)">
  <option value="english">English</option>
  <option value="spanish">Spanish</option>
</select>

Upvotes: 1

AviatorX
AviatorX

Reputation: 532

arrayValues.data[GlobalArray.lang].fname use this to get values in array value for e.g.arrayValues.data["english"].fname

arrayValues.data.""+GlobalArray.lang+"".fname issue might be Unexpected string

Upvotes: 4

Related Questions