如何在对象中获得道具索引?

时间:2018-04-10 09:38:44

标签: javascript vuejs2

我在Vue中有一个对象,它看起来像这样:

list {
123456 : Array [2]
223456 : Array [5]
323456 : Array [8]
423456 : Array [0]
523456 : Array [1]
623456 : Array [3]
}

现在我要删除数组0的那个423456(数字不是字符串)。我怎么能得到它?

3 个答案:

答案 0 :(得分:1)

您可以循环访问对象的键并首先查找空值。然后再次循环删除这些键:

let list = {
  123456: [1, 2],
  223456: [1, 2, 3, 4, 5],
  323456: [1, 2, 3, 4, 5, 6, 7, 8],
  423456: [],
  523456: [1],
  623456: [1, 2, 3]
};

Object.keys(list)
  .filter(key => list[key].length === 0)
  .forEach(key => {
    delete list[key];
  });

console.log(list);

答案 1 :(得分:1)

您只需指定要删除的密钥

这是一个工作示例。

var list = {
  123456: Array[2],
  223456: Array[5],
  323456: Array[8],
  423456: Array[0],
  523456: Array[1],
  623456: Array[3]
};

var toBeDeleted = 423456;

delete list[toBeDeleted];

console.log(list);

答案 2 :(得分:0)

使用reduce分配没有空数组的列表

list = Object.keys(list).reduce( (acc, c) => {
   if ( list[c].length > 0 ) 
   {
     acc[c] = list[c];
   }
}, {});

<强>演示

&#13;
&#13;
var list = {
  123456: [1, 2],
  223456: [1, 2, 3],
  323456: [1, 2, 4, 5],
  423456: [],
  523456: [1, 2],
  623456: [1, 2, 4, 5]
};

list = Object.keys(list).reduce((acc, c) => {
  if (list[c].length > 0) {
    acc[c] = list[c];
  }
  return acc;
}, {});

console.log(list);
&#13;
&#13;
&#13;