我在一个巨大的数组中有多个子数组 - MasterArray-意味着子数组已经在MasterArray中。我想"融合"所有这些子数组 - 删除那些[]方括号。
我想避免" concat"方法,因为数组已经在MasterArray中。有命令/方法怎么做? 谢谢。
var englandCities:Array = [London, Manchester, Leeds];
var franceCities:Array = [Paris, Orleans, Avignon];
var europeanCities:Array = [englandCities, franceCities];
我想指出......对伦敦"伦敦"以某种方式嵌套在europeanCities数组中。 在我试图追踪它之后,它给了我" englandCities",这是有道理的。
trace(europeanCities[0]);
// displays "englandCities"
// how can I make it display "London" ?
如何让euroCities数组显示"伦敦" ? 我需要从" europeanCities"中删除这些方形支架。数组没有使用concat()thingie ...
好的,让我稍微改一下。我的主阵列:
var europeanCities:Array = [englandCities, franceCities];
等于
[[London, Manchester, Leeds], [Paris, Orleans, Avignon]];
我是对的吗?现在,如何删除内部括号以获得类似的内容:
[London, Manchester, Leeds, Paris, Orleans, Avignon];
请记住,阵列比英格兰城市和法国城市要长得多......有30个不同的城市。
答案 0 :(得分:1)
创建一个空数组,然后遍历masterArray
获取任何子数组,并为新数组执行concat()
。这将使你成为另一个平坦的阵列,而不会干扰主阵列。
答案 1 :(得分:1)
我在这里写这个是因为它是可能的。
如果你坚持不使用concat,这是一个糟糕的解决方案:
// join elements into a comma delimited string
var s: String = europeanCities.join(',');
// Split the string with delimiter as commas
europeanCities = s.split(',');
由于子数组元素自动将与','连接,无论连接分隔符和我们的连接分隔符已经','这将起作用。
但是这个解决方案是cpu密集型而不是最佳的。
答案 2 :(得分:1)
您可以轻松地concat
这些,这确实是最简单的选择:
var englandCities:Array = ["London", "Manchester", "Leeds"];
var frenchCities:Array = ["Paris", "Orleans", "Avignon"];
var masterArray:Array = [englandCities, frenchCities];
var europeanCities:Array = new Array();
for each(var country:Array in masterArray) {
europeanCities = europeanCities.concat(country);
}
trace(europeanCities); // London,Manchester,Leeds,Paris,Orleans,Avignon
我不确定我理解你为此避免concat
的原因,除非问题是你不想复制这些值。 (因此修改englandCities[0]
也会修改europeanCities[0]
。)
如果您的城市是Objects
而不是原始String
,则连接的Array
可以正常工作。如果它们是原始的,那么Array
无法做到这一点。但是,您可以编写函数来提供类似的行为:
var englandCities:Array = ["London", "Manchester", "Leeds"];
var frenchCities:Array = ["Paris", "Orleans", "Avignon"];
var allCities:Array = [englandCities, frenchCities];
function europeanCities(id:int):String {
var cityID:uint = 0;
while (id > allCities[cityID].length - 1) {
id -= allCities[cityID].length;
cityID++;
}
return allCities[cityID][id];
}
trace (europeanCities(0)); // London
trace (europeanCities(5)); // Avignon