Arrays 循环以创建相同长度字符串的数组数组
我正在尝试创建一个数组,数组根据长度(字符串)分组,如下所示:Arrays 循环以创建相同长度字符串的数组数组,arrays,loops,arrayofarrays,Arrays,Loops,Arrayofarrays,我正在尝试创建一个数组,数组根据长度(字符串)分组,如下所示: var testA=[“carts”、“carts”、“cars”、“cars”、“ca”、“ca”、“ca”、“a”、“a”、“a”] 将成为: var sortedarray=[[“carts”,“carts”],[“cars”,“cars”],[“ca”,“ca”,“ca”],[“a”,“a”,“a”] 我目前正在尝试下面的循环,但根本无法实现。我知道这会很简单,但我花了很长时间试图完成这件事,结果证明它令人难以置信地沮丧
var testA=[“carts”、“carts”、“cars”、“cars”、“ca”、“ca”、“ca”、“a”、“a”、“a”]代码>
将成为:
var sortedarray=[[“carts”,“carts”],[“cars”,“cars”],[“ca”,“ca”,“ca”],[“a”,“a”,“a”]
我目前正在尝试下面的循环,但根本无法实现。我知道这会很简单,但我花了很长时间试图完成这件事,结果证明它令人难以置信地沮丧
var testA = ["carts","carts","cars","cars","ca","ca", "ca","a","a","a","a"];
var sortedArrays = [];
for(i=0; i < testA.length; i++){
longestWord = 0;
wordHolder = []
wordHolder.push(testA[i])
if (testA[i].length > longestWord){
longestWord = testA[i].length
wordHolder.push(testA[i])
}
sortedArrays.push(wordHolder)
}
var testA=[“carts”、“carts”、“cars”、“cars”、“ca”、“ca”、“ca”、“a”、“a”、“a”];
var-Darrays=[];
对于(i=0;i最长单词){
longestWord=testA[i]。长度
wordHolder.push(testA[i])
}
点击(字夹)
}
如果您有任何帮助,我们将不胜感激。下面的代码(Swift,但用其他语言重新编写应该很容易):
这段代码还创建了空数组,当然可以轻松跳过
当然,问题是你的要求是什么。上面的代码很紧凑,但对于大型阵列来说并不快速…
对于大型数组,最好先对testA进行排序,然后提取元素。使用java脚本,我能够完成以下操作。我的假设是,单词已经按长度降序排列,每个长度只有一个单词。这是基于你所做的。我认为发生的事情是,每次通过循环初始化或重置的内容太多
var testA = ["carts", "carts", "cars", "cars", "ca", "ca", "ca", "a", "a", "a", "a"];
var sortedArrays = [];
var wordHolder = []; // took outside loop to ensure initialized
var curLength = testA[0].length;// assuming here that testA not empty
for (var i = 0; i < testA.length; i++) {
if (testA[i].length === curLength) { // more of the same
wordHolder.push(testA[i]);
} else { // new block starts
curLength = testA[i].length;
sortedArrays.push(wordHolder);
// alert (wordHolder)
// alert (sortedArrays)
wordHolder = [];
wordHolder.push(testA[i]);
}
}
sortedArrays.push(wordHolder);// add the last one
var testA=[“carts”、“carts”、“cars”、“cars”、“ca”、“ca”、“ca”、“a”、“a”、“a”];
var-Darrays=[];
var wordHolder=[];//执行外部循环以确保已初始化
var curLength=testA[0]。长度;//假设testA不是空的
对于(变量i=0;i
Javascript?此外,我们还知道testA是排序的?wordHolder=[]不能在每次看到一个新词(可能是同一个词)时进行设置,这就成功了!感谢Jeremy,尤其是注释,它们为我澄清了一些事情。
var testA = ["carts", "carts", "cars", "cars", "ca", "ca", "ca", "a", "a", "a", "a"];
var sortedArrays = [];
var wordHolder = []; // took outside loop to ensure initialized
var curLength = testA[0].length;// assuming here that testA not empty
for (var i = 0; i < testA.length; i++) {
if (testA[i].length === curLength) { // more of the same
wordHolder.push(testA[i]);
} else { // new block starts
curLength = testA[i].length;
sortedArrays.push(wordHolder);
// alert (wordHolder)
// alert (sortedArrays)
wordHolder = [];
wordHolder.push(testA[i]);
}
}
sortedArrays.push(wordHolder);// add the last one