2015-10-05 69 views
2

我有這樣的陣列: [試驗,用戶A,測試,用戶B,測試,用戶C,測試,userd]如何從一個陣列到選擇JSON鍵插入值

這JSON:

{ 
"data": [ 
    { 
     "email": "[email protected]", 
     "mobile": "9881880455", 
     "panCardNo": "ABCD014141", 
     "city": "Mumbai" 
    }, 
    { 
     "email": "[email protected]", 
     "mobile": "9881880455", 
     "panCardNo": "ABCD014141", 
     "city": "Mumbai" 
    } 
] 
} 

我想鍵值對添加到現有的對象,即「姓氏」:

for(var i=0; i<importedJson.data.length;i++) 
{ 
    for(var f=1;f<=arrFirstLast.length-1;f+2) 
    { 
     importedJson.data[i].lastName = arrFirstLast[f]; 
    } 
} 

預期的Json「從數組值」:

{ 
"data": [ 
    { 
     "lastname": "usera", 
     "email": "[email protected]", 
     "mobile": "9881880455", 
     "panCardNo": "ABCD014141", 
     "city": "Mumbai" 
    }, 
    { 
     "lastname": "userb", 
     "email": "[email protected]", 
     "mobile": "9881880455", 
     "panCardNo": "ABCD014141", 
     "city": "Mumbai" 
    } 
] 
} 

我得到未定義?或沒有輸出?

+0

都能跟得上的答案中最簡單的一個。它插入一個到處都是相同索引的元素。 – user3452275

+0

可以請你創建jsfeddle – Mitul

+0

請添加「arrFirstLast」json也是這樣會創建demo – Mitul

回答

1

感覺我的解決方案是提供

var j=0, k=0; 
for(var i=0; i<importedJson.data.length;i++) 
{ 
    importedJson.data[i].firstName = arrFirstLast[k]; 
    k=k+2; 
    j=j+1; 
    importedJson.data[i].lastName = arrFirstLast[j]; 
    j=j+1; 
} 
0

如果索引位於數組內,您可以考慮只有一個迭代器的數組方法。

var arrFirstLast = ['test', 'usera', 'test', 'userb', 'test', 'userc', 'test', 'userd'], 
 
    importedJson = { 
 
     "data": [ 
 
      { 
 
       "email": "[email protected]", 
 
       "mobile": "9881880455", 
 
       "panCardNo": "ABCD014141", 
 
       "city": "Mumbai" 
 
      }, { 
 
       "email": "[email protected]", 
 
       "mobile": "9881880455", 
 
       "panCardNo": "ABCD014141", 
 
       "city": "Mumbai" 
 
      } 
 
     ] 
 
    };  
 

 
importedJson.data.some(function (a, i) { 
 
    var p = i * 2 + 1; 
 
    if (p < arrFirstLast.length) { 
 
     a.lastName = arrFirstLast[p]; 
 
    } else { 
 
     return true; // stop iteration 
 
    } 
 
}); 
 
document.write('<pre>' + JSON.stringify(importedJson, 0, 4) + '</pre>');