小编K.J*_*J.K的帖子

从对象数组中删除动态键

这个以前的问题是最接近我很好奇的。我尝试了 indexOf() 和 filter() 的几种变体但没有成功

我有一个对象数组 ( exampleDat):

[{id:1, value:"100", name:"dog", D1: 10, D2: 67, D3: 33},
{id:2, value:"200", name:"cat", D1: 66, D2: 41, D3: 34},
{id:3, value:"300", name:"fish", D1: 23, D2: 45, D3:},
{id:4, value:"400", name:"mouse", D1: 13, D2: 55, D3:},
{id:5, value:"500", name:"snake", D1: 7, D2: 9, D3:}]
Run Code Online (Sandbox Code Playgroud)

另一个函数中,我返回一个数组,其中包含我需要的这些“键”中的哪一个。这个数组是动态变化的,所以不可能把它们全部输入出来。例如,以下任何一个例子都是可行的,

useThese1 = ['D1','D2'] //Want exampleDat returned with only these key,value 'columns' returned
useThese2 = ['id','D1','D2','D3'] //Want exampleDat return with only these key,value 'columns' returned …
Run Code Online (Sandbox Code Playgroud)

javascript arrays object

4
推荐指数
1
解决办法
304
查看次数

具有多个startsWith 和endsWith 参数的过滤器数组

浏览了围绕这个问题的几个不同的问题/答案,但大多数依赖includesindexOf

问题:如何过滤任何数组(names在这种情况下)。我需要使用 2 个不同的数组对其进行过滤,其中一个具有startsWith条件,另一个具有endsWith条件

var names = ['BOB','CATHY','JAKOB','AARON','JUSTICE','BARBARA','DANIEL','BOBBY','JUSTINE','CADEN','URI','JAYDEN','JULIE']
startPatterns = ['BO','JU']
endPatterns = ['EN','ICE']

//res = ['BOB','JUSTICE','JUSTINE','JULIE','JAYDEN','JUSTICE']
Run Code Online (Sandbox Code Playgroud)

显然你不能这样做,names.filter(d => d.startsWith(startPatterns))因为startPatterns它不是一个字符串而是一个数组。像这样的东西不起作用,而且速度也很慢:

res=[]
names.forEach(d => {
  endPatterns.forEach(y => d.endsWith(y) ? res.push(d) : '')
  startPatterns.forEach(s => d.startsWith(s) ? res.push(d) : '')})
console.log(res)
Run Code Online (Sandbox Code Playgroud)

javascript

1
推荐指数
1
解决办法
882
查看次数

标签 统计

javascript ×2

arrays ×1

object ×1