面试题数组L型输出思路

面试题:var arr = [ [1,2,3], [4,5,6], [7,8,9]]// 数组L型输出 输出顺序为 1 4 7 8 9 2 5 6 3 // 相当于根据 arr数组创建一个值为[1,4,7,8,9,2,5,6,3]的新数组首先L型,顾名思义,就是左边一竖加底部一横,那么我们先把数组中的竖和横弄出来第一个L就是arr中每个数组的第一个下标(0) (一竖)到末尾的整个数组(一横)。[ [1,2,3], [4,5,6], [7,8,9]][ [1],
摘要由CSDN通过智能技术生成

面试题:

var arr = [
 [1,2,3],
 [4,5,6],
 [7,8,9]
]
// 数组L型输出 输出顺序为  1  4 7 8 9 2 5 6 3 
// 相当于根据 arr数组创建一个值为[1,4,7,8,9,2,5,6,3]的新数组

首先L型,顾名思义,就是左边一竖加底部一横,那么我们先把数组中的竖和横弄出来

  1. 第一个L就是arr中每个数组的第一个下标(0) (一竖)到末尾的整个数组(一横)。
[
 [1,2,3],
 [4,5,6],
 [7,8,9]
]
[
   [1],
   [4],
   [7, 8, 9]
]

var a = arr[0][0]
var b = arr[1][0]
var c = arr[2][0]
var d = arr[2][1]
var e = arr[2][2]
// [a,b,c,d,e] ==> [1,4,7,8,9]

  1. 第二个L就是去掉第一个L数据后剩下数组的第一个下标(一竖)到末尾的整个数组(一横)。
[
 [2,3],
 [5,6]
]
[
   [2],
   [5, 6]
]

var f = arr[0][1]
var g = arr[1][1]
var h = arr[1][2]
// [f,g,h] ==> [2,5,6]
  1. 第三个L已经没有了,剩下最后一个数。这里把他当成一竖
 [
    [3]
 ]

var i = arr[0][2]
// [i] ==> [3]
  1. 我们首先把每个竖拿出来。
// 第一个竖
var a = arr[0][0]
var b = arr[1][0]
var c = arr[2][0]
// 第二个竖
var f = arr[0][1]
var g = arr[1][1]
// 第三个竖
var i = arr[0][2]
  1. 上面(列表4.)代码中我们看到每个竖的第一位下标的规律是
// 第一个竖第一个下标
var a = arr[0]    //[0]
var b = arr[1]    //[0]
var c = arr[2]    //[0]
// 第二个竖第一个下标
var f = arr[0]    //[1]
var g = arr[1]    //[1]
// 第三个竖第一个下标
var i = arr[0]    //[2]

第一个竖的第一个下标分别为 0 1 2 第二个竖的第一个下标分别为 0 1 第三个竖的第一个下标分别为 0
相信大部分人都能写出一个这样的循环吧,下面这个循环输出的直分别为每个竖的第一个下标

var length = 3; // 后面将替换成 arr.length
for(var i= length; i > 0; i--){
   
  for(var j = 0; j < i; j++){
   
     console.log(j)
  }
}
// 输出顺序 ⇒ 0 1 2   0 1   0
  1. 上面(列表4.)代码中我们观察竖的第二个下标的顺序为 0 0 0 1 1 2
// 第一个竖第二个下标
var a = arr[0]    [0]
var b = arr[1]    [0]
var c = arr[2]    [0]
// 第二个竖第二个下标
var f = arr[0]     [1]
var g = arr[1]    [1]
// 第三个竖第二个下标
var i = arr[0]     [2]

我们把上面的循环拿下来,然后用arr数组的长度减去i,输出的顺序刚好就和我们的第二个下标一致

var length = 3; // 后面将替换成 arr.length
for(var i= length; i > 0; i--){
   
 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值