2017-10-10 45 views
0

調用Ajax有一定網址我在格式的JSON對象的形式返回的數據後:結合JSON對象的不同精密組件的值到一個數組

{"feild1":["val1","val2","val3",...,"valn"], 
"feild2":["vala","valb","valc",...,"valx"]} 

我想結合feild1和feild2的值,使得我有類型的單個陣列:

["val1","val2","val3",...,"valn","vala","valb","valc",...,"valx"] 

因此,我可以此單數組發送到響應函數自動完成功能。如果我發送data.feild1,然後data.feild2data.feild2的值僅在下拉菜單中顯示。

+0

使用陣列CONCAT [如何合併在Javascript兩個數組並刪除重複的項目](HTTPS的 –

+0

可能重複: //stackoverflow.com/questions/1584370/how-to-merge-two-arrays-in-javascript-and-de-duplicate-items) –

回答

0

一套從你的迴應兩個陣列:

var array1 = ["val1","val2","val3",...,"valn"]; 
var array2 = ["vala","valb","valc",...,"valx"]; 
var new_merged_array = array1.concat(array2); 
console.log(new_merged_array) 

CONCAT兩個陣列的使用concat功能

1

反覆調整假設你在關鍵response響應,然後

var array1 = response.field1; 

var array2 = response.field1; 

然後Object#keysArray#map將數組提取到數組數組,然後通過應用Array#concat

var data = {"feild1":["val1","val2","val3","valn"], "feild2":["vala","valb","valc","valx"]}; 
 

 
var result = [].concat.apply([], Object.keys(data).map(function(key) { 
 
    return data[key]; 
 
})); 
 

 
console.log(result);

或通過使用ES6 spread syntaxObject#Values提取子陣列:

const data = {"feild1":["val1","val2","val3","valn"], "feild2":["vala","valb","valc","valx"]}; 
 

 
const result = [].concat(...Object.values(data)); 
 

 
console.log(result);

0

使用陣列的concat建立一個單一的陣列

let responseArray = []; 

for (var key in data) { 
    if (data.hasOwnProperty(key)) { 
    responseArray.concat(data[key]); 
    } 
} 

迴應與responseArray

0

只需要使用EcmaScript6傳播參數

var array1 = { 
    "feild1":["val1","val2","val3","valn"],    
    "feild2":["vala","valb","valc","valx"] 
}; 

var result = [...array1.feild1, ...array1.feild2 ]; 
相關問題