Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 循环以创建相同长度字符串的数组数组_Arrays_Loops_Arrayofarrays - Fatal编程技术网

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