【问题标题】:How to delete all elements from the array but retain specific element by value如何从数组中删除所有元素但按值保留特定元素
【发布时间】:2019-06-09 15:59:07
【问题描述】:

大家好!我遇到了一些问题。我想从数组中删除所有数据,但不删除基于值的那 1 个数据。

示例:

key = '2' 
array = [ 
         'data1': 'foo',
         'data' : 
                 {
                  'id' : '1', 
                  'id' : '2', 
                  'id' : '3'
                 }
         ]

result = [
          'data1': 'foo',
          'data' : 
                  {
                   'id' : '2'
                  }
         ]

谢谢你

【问题讨论】:

标签: javascript arrays


【解决方案1】:

您可以使用filter() 并将值与key 进行比较。

const key = 'foo';  
const array = ['foo', 'box', 'tree', 'bar'];
const result = array.filter(x => x === key);
console.log(result)

【讨论】:

  • 嵌套数组怎么样?
  • @JofeeanOgario 通过更新问题举个例子。
  • @JofeeanOgario 您的数据无效。您不能在 [](arrays) 中使用 key:value
  • @JofeeanOgario 先自己试试吧。然后再次使用您尝试过的代码更新问题。然后向我寻求帮助。
【解决方案2】:

最简单的方法是重新分配数组或使用结果创建一个新数组

const key = 'foo';
let array = ['foo', 'box', 'tree', 'bar'];
/*array = new Array(key); //be carefull if yoy are using this and the key is singular numeric value*/
array = [key];
console.log(array);

【讨论】:

  • 为什么new Array(key) 为什么不只是[key]
  • 仍然是正确的,它不涉及任何地方的array 的元素。
  • 没有提到key不在数组中。它还提到了one data,对我来说,为此遍历数组是没有意义的。
  • OP 说 “我想从数组中删除所有数据,但不删除基于值的那 1 个数据。”.
猜你喜欢
  • 1970-01-01
  • 2021-11-08
  • 2016-02-12
  • 1970-01-01
  • 2019-06-03
  • 1970-01-01
  • 2016-03-19
  • 2011-01-27
相关资源
最近更新 更多