繁体   English   中英

从给定数组创建一个新数组,其中每个元素的长度比前一个元素大一,使用 Javascript

[英]Create a New array from given array where each element's length is one more than previous element, Using Javascript

我想从每个元素长度大于其前一个元素的旧数组创建新数组。 我有一个旧数组,如下所示:

Arr=[[2,3],[1,2],[2,4,5],[6,6,3],[3,2,1],[4,2,3],[4,2,1,2],[2,1,4,5]]

现在我必须从上面的数组中创建一个如下所示的新数组:

newArr = [[2,3],[2,4,5],[4,2,1,2]]

使用 Javascript。

我们遍历所有数组,如果当前长度小于下一个,我们将元素推入结果并更改当前长度

const findArray = () => {
  let currentLength = 0
  const result = []
  for (let i = 0; i < arr.length; i += 1) {
    if (arr[i].length > currentLength) {
      result.push(arr[i])
      currentLength = arr[i].length
    }
  }
  return result
}

我在这里用实际价值演示此代码(output 打印在屏幕上)

<!DOCTYPE html>
<html>
<body>

<p>Click the button to create an array, then display its length.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
   
  var Arr=[[2,3],[1,2],[2,4,5],[6,6,3],[3,2,1],[4,2,3],[4,2,1,2],[2,1,4,5]];
  
var text = ""; 
var len=0;
var i;
for (i = 0; i < Arr.length; i++) { 
 if (len < Arr[i].length )
  {text += Arr[i] + "<br>"; len=Arr[i].length;}
}
  
  document.getElementById("demo").innerHTML = text;


}
</script>

</body>
</html>

结果是:

2,3
2,4,5
4,2,1,2

您可以关闭下一个想要的长度并通过检查索引或实际长度来过滤数组。 如果两个条件之一为true ,则将l设置为下一个预期长度。

 const array = [[2, 3], [1, 2], [2, 4, 5], [6, 6, 3], [3, 2, 1], [4, 2, 3], [4, 2, 1, 2], [2, 1, 4, 5]], result = array.filter( (l => ({ length }) => (;l || l === length) && (l = length + 1)) (0) ). console;log(result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM