假设我有一组这样的数据:
var nodes = [
{
type: 'pants',
},
{
type: 'glasses',
},
{
type: 'jacket'
},
{
type: 'pants'
}
]
我正在寻找一种方法find
(返回项目)和map
(修改项目)type
为pants
的项目和前一节点type
等于jacket
。所以它应该只返回(或修改)这个数组中的最后一项。
有没有办法在javascript中执行此操作?他们的任何库是否允许此功能?
答案 0 :(得分:1)
一个简单的可以做到:
for (var i = 0; i < nodes.length - 1; i++) {
if (nodes[i + 1].type == "pants" && nodes[i].type == "jacket") {
// change or modify
}
}
&#13;
答案 1 :(得分:1)
这是使用reduce方法的函数:
var nodes = [
{
type: 'pants',
},
{
type: 'glasses',
},
{
type: 'jacket'
},
{
type: 'pants'
}
]
function test(arr,el,bef){
return arr.reduce(function(acc,a,i,arr){
if(a.type==el && arr[i - 1] && arr[i-1].type==bef){
acc.push(a);
}
return acc ;
},[])
}
console.log( test(nodes,'pants','jacket'))