在之前或之后根据兄弟姐妹查找项目
Finding item based on sibling before or after
假设我有一组这样的数据:
var nodes = [
{
type: 'pants',
},
{
type: 'glasses',
},
{
type: 'jacket'
},
{
type: 'pants'
}
]
我正在寻找find
(返回项目)和map
(修改项目)的方法,其中type
是pants
,前面的节点有type
等于jacket
。因此,它应该只返回(或修改)数组中的最后一项。
有什么方法在javascript中做到这一点吗?他们的库允许这个功能吗?
一个简单的for就可以做到:
for (var i = 0; i < nodes.length - 1; i++) {
if (nodes[i + 1].type == "pants" && nodes[i].type == "jacket") {
// change or modify
}
}
下面是一个使用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'))
相关文章:
- JQUERY检索并删除以前的兄弟姐妹
- Jquery/Javascript—查找父级's的兄弟姐妹's儿童'的孩子
- 通过单击链接(兄弟姐妹?)从无线电输入中获取id
- 包裹的咕哝声并不能让它的兄弟姐妹满意;peerDependencies要求
- 点击Div A触发Div B并移除Div B的兄弟姐妹
- mousedown在兄弟姐妹上的传播
- Kendo TreeView:检查节点是否有兄弟姐妹或子节点
- 子对象调用兄弟姐妹'方法
- 从元素'中选择一个元素;的兄弟姐妹
- 父母找到或兄弟姐妹或下一个不会工作
- 在这种情况下,如何更改接下来3个兄弟姐妹的类别
- 访问下一个兄弟姐妹
- 反应 - 将引用传递给兄弟姐妹
- 反应.js - 如何创建手风琴(与兄弟姐妹交谈)
- 在兄弟姐妹周围插入 Javascript 环绕
- 查找兄弟姐妹和仅使用 JavaScript 添加类
- DOM 遍历以查找父级的兄弟姐妹
- 查找父对象的特定子对象's以前的兄弟姐妹,当兄弟姐妹是动态的
- 在之前或之后根据兄弟姐妹查找项目
- XPath来查找具有文本+其所有子代的节点&符合某些标准的兄弟姐妹