对象删除(消耗时间验证)

删除对象有两种方法:

1、delete 2、赋值undefined

简单对象:

let data = {a:1,b:2,c:3,d:4}

fn1(){
  console.time('消耗时间');
  data['d'] = undefined;
  console.timeEnd('消耗时间');
}
fn2(){
  console.time('消耗时间');
  data.d = undefined;
  console.timeEnd('消耗时间');
}
fn3(){
  console.time('消耗时间');
  delete data.d;
  console.timeEnd('消耗时间');
}

fn1();
消耗时间: 0.013671875ms

fn2();
消耗时间: 0.0029296875ms

fn3();
消耗时间: 0.004150390625ms

稍复杂点的对象:

let data = {
    "ircEvent": "PRIVMSG",
    "method": "newURI",
    "regex": "^http://.*"
}
function fn1(){
  console.time('消耗时间');
  data['regex'] = undefined;
  console.timeEnd('消耗时间');
}
function fn2(){
  console.time('消耗时间');
  data.regex = undefined;
  console.timeEnd('消耗时间');
}
function fn3(){
  console.time('消耗时间');
  delete data.regex;
  console.timeEnd('消耗时间');
}

fn1()
 消耗时间: 0.003173828125ms

fn2()
消耗时间: 0.003173828125ms

fn3()
 消耗时间: 0.003662109375ms

从执行时间上来看,对于特别简单的对象使用:

data.d = undefined;
速度最快
但是对于稍复杂点的数据来讲,速度并没有太大区别



另:
为什么简单的数据,消耗的时间反而更久???
原文地址:https://www.cnblogs.com/sixrookie/p/13634541.html