Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数组中删除匹配字符串_Javascript_Arrays_Reactjs - Fatal编程技术网

Javascript 从数组中删除匹配字符串

Javascript 从数组中删除匹配字符串,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我有以下数组: ['/1', '/1/a', '/1/a/b', '/2', '/2/a', '/2/a/b'] 我想写一个函数,它可以返回以下内容: ['/1', '/2'] ['/1/a', '/2/a'] 实际上,“/1”表示父母,“/1/a”表示孩子。假设我们有以下json: [ { a:{ b: 'b value' } } { a:{ b: 'b value' } } { a:{ b: 'b va

我有以下数组:

['/1', '/1/a', '/1/a/b', '/2', '/2/a', '/2/a/b']
我想写一个函数,它可以返回以下内容:

['/1', '/2']
['/1/a', '/2/a']
实际上,“/1”表示父母,“/1/a”表示孩子。假设我们有以下json:

[
  {
   a:{
     b: 'b value'
    }
  }
  {
   a:{
     b: 'b value'
    }
  }
  {
   a:{
     b: 'b value'
    }
  }
]
如果数组是,例如

['/1/a', '/1/a/b', '/2/a', '/2/a/b']
该函数将返回以下结果:

['/1', '/2']
['/1/a', '/2/a']
我运行了jsonpath函数,它返回了上面的数组。例如,我想更改从jsonpath返回的对象的颜色。我正在使用react在浏览器中显示json,我只想更改父对象(即'/1','/2')的颜色,而不想更改子对象(即'/1/a','/1/a/b')的颜色以保存额外的渲染,我如何才能做到这一点? 函数可以是这样的

filter(val =>  !val.startsWith(parent))

我该怎么做?请帮助

您可以通过对照模式检查存储的值来检查模式是否存在

这种方法接受PAT并检查某些项目是否有多个较长的子项

最后,所有部件都连接在一起

const
数组=['/1/a/b'、'/1'、'/1/a'、'/1/a/b/3'、'/2'、'/2/a/b'、'/2/a/b'、'/2/a/c/3'、'/11/a'、'/11/b'、'/11'],
最短=数组
.reduce((最短,字符串)=>{
常数
keys=string.slice(1).split('/'),
subset=shortest.filter(t=>keys.some((v,i)=>v!==t[i]);
if(subset.length!==shortest.length)返回[…子集,键];
如果(!shortests.some(t=>t.every((v,i)=>v==keys[i]))shortests.push(keys);
返回最短;
}, [])
.map(keys=>`/${keys.join('/')}`);

控制台日志(最短)您好,谢谢您的回答,但它会将“/0”返回到“/9”。我有像'/15','/699','/1999'这样的字符串