网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月10日漏签0天
javascript吧 关注:269,259贴子:906,426
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 48回复贴,共2页
  • ,跳到 页  
<<返回javascript吧
>0< 加载中...

一个面试题,求解

  • 只看楼主
  • 收藏

  • 回复
  • 断墨的笔
  • true
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
for( i=0; i<arr.length; i++)
for( i=arr.length;i>0; i--)
这两种遍历方法哪里不同?那种方法更好?为什么?


  • 提灬莫
  • true
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
肯定是第二种好,第一种for循环会每次去获取arr.length,简称动态数据,而第二个就不会了,通过赋值。


2025-06-10 10:42:15
广告
  • 提灬莫
  • true
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
@_sheepy_ 你来说说


  • 妮可nicoIe
  • var
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
var arr=[1,2,3,4];
var arr2=[];
for(i=0;i<arr.length;i++)
{
arr2+=arr.shift();
}
alert(arr2);
这样的话跑不完循环


  • 沪顶程序员
  • Error
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不要去考虑这种性能,js是最不用考虑性能的编程语言,你举的例子是应用于两种不同情况的,如果同时可以用的情况下,建议用第一种,比较直接。
当然你一个html,包含了几10多个没用的js文件,那影响性能就跟编程无关了。


  • _欠扁型
  • Error
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第二种好!因为第一种每次都要获取length,而且这个值是动态的,你在循环体中增加数组,这个值就会不断变化,导致死循环。第二种,使用变量保存值,每次就访问变量,而且比第一种速度快,判断更简单只跟0比较


  • Monkey92t
  • Number
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
两种结果不同,一正一反,没法说哪个好


  • Abllrl
  • Error
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没啥好坏吧。
首先最明显的,两个顺序不同。
至于性能的话,确实第一个每次都获取长度值,但是这个更重要还是应该看需求是需要什么顺序遍历。
而且,有的时候遍历还真会出现6楼所说那种,数组长度变化的动态遍历,那么第二种倒序遍历就不适用了。
这个是既然是面试题,那更看重的肯定是你的思维发散能力还有对语言的理解程度,这种题没有准确答案的。


2025-06-10 10:36:15
广告
  • 两种style
  • while
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第二种做了一个数据缓存罢了 不过确实在性能上有所提升


  • 小马别过河
  • while
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
好像在mdn上看到过这个例子


  • m453024717
  • switch
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
效率问题,在已知数组长度的情况下 推荐使用第二种 未知数组长度情况下还有for(var i = 0, ni; ni = _array[i++];)这种写法


  • sgt
  • Boolean
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你自己可以假设一组数据然后自己alert 就知道了啊


  • 陈燕彬李
  • trycatch
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
var len=arr.length;for( i=0; i<len; i++)更好,在数据量比较大的情况下才能体现出来,数据量小,是体现不出来性能的!


  • 莞儿漪笑
  • while
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
都说第二种好,为什么我见到的一般都是第一种,当然我是初学者。


2025-06-10 10:30:15
广告
  • __泉此方__
  • for
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第二种效率高,因为每运行一次,就会运行一次那段代码
相比第一种,只用运行比较符号就好了,效率高很多
但不能就这么说好坏,
第一种可以满足特殊需求,就是遍历中会增加新成员,在特殊情况下就可以获得遍历的更完整
但第二种就不行


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 48回复贴,共2页
  • ,跳到 页  
<<返回javascript吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示