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]
,如果符合您的情况