如何在JavaScript中删除最后一个键:值对

时间:2014-05-25 06:36:12

标签: javascript object

我是JavaScript的新手,我试图找出如何设置一个函数来删除最后一个键:右边的值对,就像数组的array.pop一样。这是我正在进行的任务。这似乎让我感到困惑,因为从我对JS的有限理解来看,它们在对象的属性列表中没有特定的顺序。如果有人有任何见解我会很感激。这是对象:

var array = {length:0, size:big, smell:strange};

这是我开始学习的地方,但是很难完成这个功能:

array.pop = function() {
//...
};

最终我希望结果如下:

array = {length:0, size:big};    

提前致谢。

3 个答案:

答案 0 :(得分:3)

对象没有任何已定义的属性顺序,因此没有“last”属性。您必须按名称删除属性,而不是位置。

当然,您可以迭代属性并在迭代时检查它们,并通过查看其名称来决定是否要删除任何给定属性。一些javascript实现将保留添加属性的顺序,但ECMAScript规范特别不保证这一点,因此无法依赖它。

答案 1 :(得分:0)

这将起作用

baseMapper

答案 2 :(得分:0)

此答案适用于密钥是动态生成的数字(如 0、1、2、3、4 等)的情况

const myObject = {
  0: 'somestring',
  1: 42,
  2: false
};

delete myObject[`${Object.keys(myObject).length-1}`]
console.log(myObject);

输出:

<块引用>

对象 { 0: "somestring", 1: 42 }

当 key 是字符串时,这一行逻辑可能不好。所以,请谨慎使用。