Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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_Json_Object_Traversal - Fatal编程技术网

Javascript 在查找项目之前或之后查找基于同级的项目

Javascript 在查找项目之前或之后查找基于同级的项目,javascript,arrays,json,object,traversal,Javascript,Arrays,Json,Object,Traversal,假设我有一组如下数据: var nodes = [ { type: 'pants', }, { type: 'glasses', }, { type: 'jacket' }, { type: 'pants' } ] 我正在寻找查找(返回项)和映射(就地修改项)的方法,其中类型为裤子,前面的节点的类型等于夹克。因此,它应该只返回(或修改)该数组中的最后一项 有没有办法在javascript中实现这一点?他们的库是否允许此功能?一个简

假设我有一组如下数据:

var nodes = [
  {
    type: 'pants',
  },
  {
    type: 'glasses',
  },
  {
    type: 'jacket'
  },
  {
    type: 'pants'
  }
]
我正在寻找
查找
(返回项)和
映射
(就地修改项)的方法,其中
类型
裤子
,前面的节点的
类型
等于
夹克
。因此,它应该只返回(或修改)该数组中的最后一项


有没有办法在javascript中实现这一点?他们的库是否允许此功能?

一个简单的for可以做到这一点:

for(var i=0;i}
这里有一个使用reduce方法的函数:

var节点=[
{
类型:'裤子',
},
{
类型:“眼镜”,
},
{
类型:“夹克”
},
{
类型:“裤子”
}
]
功能测试(arr、el、bef){
返回arr.REDUCT(功能(acc、a、i、arr){
if(a.type==el&&arr[i-1]&&arr[i-1].type==bef){
acc.push(a);
}
返回acc;
},[])
}

log(test(节点、'pants'、'jacket'))
我认为这太奇怪了,没有一个内置的方法。只需将数组
length-1
循环几次,比较
[i]。键入[i+1]。键入
,修改
[i+1]
,如果符合您的情况