2017-01-31 154 views
0

我有從數據庫中獲得的二維數組。它看起來像這樣:從數據庫中找到一個多維數組並保存它

arrayDB = [url1,name1,url2,name2,url3,name3, ...] 

現在我想保存這個數組在我的代碼。我嘗試過:

function symbolsArray(syms){ 
    var tableArray = []; 
    var tableArray2 = []; 

    for (var i = 0; i < syms.length; i++) { 
     tableArray[i] = syms[i][0]; //url 
     tableArray2[i] = syms[i][1]; //Name 
    } 
} 

但是,這種方法並不適合,因爲我需要兩個返回值。是否有更好的方法或解決二維數組內容的方法?

Syms是來自數據庫的數據。

+2

你的'arrayDB'看起來像一個一維數組給我。除非你的數組由具有實際值的子數組組成,否則它是一維數組。另外,syms是數據庫中的數據嗎?爲什麼你需要將它複製到不同的數組中? –

+0

你的代碼不工作或你的arrayDB是錯誤的(可能[URL1,NAME1],[URL2,NAME2]?) –

回答

0

做看看 How can I create a two dimensional array in JavaScript?

,回答有關在javascript二維數組類似的問題。試試喜歡 -

function symbolsArray(syms){ 
    var tableArray = []; 

    for (var i = 0; i < syms.length; i++) { 
     tableArray[i] = [syms[i][0] , syms[i][1]]; 
    } 
} 
+1

謝謝,我已經看到了,但沒能使其適應我的代碼。你的方法似乎適用於我。 – Hannah

0

你的陣列是不是兩個dimensional.You可以單獨URL和名字是這樣的...

arrayDB = ['url1','name1','url2','name2','url3','name3'];//assumed array 
 
urls = [];//array for urls 
 
names = [];//array for names 
 
for(i=0;i<arrayDB.length;i++){ 
 
(i%2==0)?urls.push(arrayDB[i]):names.push(arrayDB[i]); 
 
} 
 
console.log(names); 
 
console.log(urls);

0

如果香港專業教育學院得到了你的權利,你的問題是你的代碼需要返回兩件事,但返回只有一件事,對吧?

可能會返回一個對象:

return {names: tableArray2,urls:tableArray}; 

你可以使用這樣的:

var mydata=symbolsArray(arrayDB); 
console.log(mydata.names,mydata.urls); 

如果你只是想深克隆,這樣做:

var cloned=JSON.parse(JSON.stringify(arrayDB)); 

或者更優雅:

var cloned=arrayDB.map(el=>el.map(e=>e)); 
相關問題