我有一个从数据库中获取的2D数组。它看起来像是:
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
}
}
但是,这种方法并不合适,因为我需要两个返回值。是否有更好的方法或方法来解决2D阵列中的内容?
Syms是数据库中的数据。
答案 0 :(得分:1)
请看一下 How can I create a two dimensional array in JavaScript?
回答关于javascript中2d数组的类似问题。尝试像 -
这样的东西function symbolsArray(syms){
var tableArray = [];
for (var i = 0; i < syms.length; i++) {
tableArray[i] = [syms[i][0] , syms[i][1]];
}
}
答案 1 :(得分:1)
你的数组不是二维的。你可以分开这样的网址和名字......
<ListView ItemsSource="{Binding toBinding, Mode=TwoWay}">
<ListView.ItemTemplate>
<DataTemplate>
<Label Text="{Binding Name}" FontAttributes="Bold" />
<DataTemplate>
</ListView.ItemTemplate>
</ListView>
答案 2 :(得分: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));