0

My string is:

var str = "hi {0} your contact is {1}";

{0},{1} indicates dynamic data we can substitute to that string. Have to find "{0}" and replace it with objects in array where array contains:

var my_arr=[[{"data":"priya"},{"data":"reena"},{"data":"mathew"}],[{"data":"123456"},{"data":"745896"},{"data":"236521"}]]

and I want to replace {0} with my_arr[0] data and {1} with my_arr[1] data. Finally my output would be like this :

var result={"hi priya your contact is 123456","hi reena your contact is 745896","hi mathew your contact is 236521"}.

please help me to do this, any changes in array format can be acceptable. Thanks in advance.

cindrella
  • 5
  • 3
  • var str = "hi {0} your contact is {1}"; inside the string . the sequence is 0,1,2 .... is order or non order ? – JYoThI May 06 '17 at 05:20
  • order. that order goes like 0,1,2,3,4,5....etc – cindrella May 06 '17 at 05:34
  • Possible duplicate of [JavaScript equivalent to printf/string.format](http://stackoverflow.com/questions/610406/javascript-equivalent-to-printf-string-format) – Andreas May 06 '17 at 05:44

2 Answers2

0

Try below code.

var str = "hi {0} your contact is {1}";

var my_arr=[[{"data":"priya"},{"data":"reena"},{"data":"mathew"}],[{"data":"123456"},{"data":"745896"},{"data":"236521"}]]

var result = [];

$.each(my_arr[0],function(i) {
  var str = "hi {0} your contact is {1}";
  result.push(str.replace('{0}',my_arr[0][i].data).replace('{1}',my_arr[1][i].data));
});
console.log(result);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
ganesh deshmukh
  • 314
  • 4
  • 17
  • (str.replace('{0}',my_arr[0][i].data) here I want to search dynamically like ' {'+i+'}'.where i can be 0,1,2..how could I do this – cindrella May 06 '17 at 06:01
0

use nested loop and string replace like this

var my_arr=[[{"data":"priya"},{"data":"reena"},{"data":"mathew"}],[{"data":"123456"},{"data":"745896"},{"data":"236521"}],[{"data":"address1"},{"data":"address2"},{"data":"address3"}]]

var str = "hi {0} your contact is {1}  and address is {2}";
var new_arr =[];
  
for(i=0;i<my_arr.length;i++)
 {
     for(j=0;j<my_arr[i].length;j++)
     {
        if(i==0)
 {  
            str_1 = str.replace("{"+i+"}",my_arr[i][j]['data']);
            new_arr.push(str_1);
         }
 else
 {
     new_arr[j]=new_arr[j].replace("{"+i+"}",my_arr[i][j]['data']); 
        }
     }   
  }
 
console.log(new_arr);
JYoThI
  • 11,977
  • 1
  • 11
  • 26