js中删除数组或对象

JavaScript019

js中删除数组或对象,第1张

在vue中使用

vue.delete()

删除对象属性

通过delete操作符, 可以实现对对象属性的删除操作, 返回值是布尔

例:      var obj={name: 'zhagnsan',age: 19 }

            delete obj.name //true

            typeof obj.name //undefined

同样可用于函数,数组,变量,对象,但对象不能删除,只能做到删除对象属性

删除变量

例: var name ='zs' //已声明的变量

        delete name  //false

        console.log(typeof name)  //String

        age = 19  //未声明的变量

        delete age //true

        typeof age //undefined

        this.val = 'fds'  //window下的变量

        delete this.val   //true

        console.log(typeof this.val)  //undefined

删除数组

以声明数组返回false,未声明返回true

var arr = ['1','2','3'] ///已声明的数组

delete arr //false

console.log(typeof arr)  //object

arr = ['1','2','3']  //未声明的数组

delete arr  //true

console.log(typeof arr)  //undefined

var arr = ['1','2','3']  //已声明的数组

delete arr[1]  //true

console.log(arr)  //['1','empty','3']

删除函数

var fn = function(){} //已声明的函数

delete fn //false

console.log(typeof fn)  //function

fn = function(){}  //未声明的函数

delete fn //true

console.log(typeof fn)  //undefined

删除对象

var person = {

  height: 180,

  long: 180,

  weight: 180,

  hobby: {

    ball: 'good',

    music: 'nice'

  }

}

delete person  ///false

console.log(typeof person)  //object

var person = {

  height: 180,

  long: 180,

  weight: 180,

  hobby: {

    ball: 'good',

    music: 'nice'

  }

}

delete person.hobby  ///true

console.log(typeof person.hobby)  //undefined

delete和splice都可以删除数组中的元素,但是有些区别的,我举具体的例子给你看,你看后就明白了。

例如有一个数组是 :var textArr = ['a','b','c','d']

这时我想删除这个数组中的b元素:

方法一:delete 删除数组

delete textArr[1] 结果为: [ "a",undefined,"c","d"]

只是被删除的元素变成了 undefined 其他的元素的键值还是不变。

方法二:aplice 删除数组

splice(index,len,[item])注释:该方法会改变原始数组。

index:数组开始下标len: 替换/删除的长度 item:替换的值,删除操作的话 item为空

textArr.splice(1,1) 结果为: [ "a","c","d"] 直接删除了数组 改变了数组的值。