首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用双簧管迭代对象数组?

如何使用双簧管迭代对象数组?
EN

Stack Overflow用户
提问于 2016-12-13 19:29:14
回答 2查看 631关注 0票数 2

我的答复是:

代码语言:javascript
复制
[{
  "id": 425055,
  "title": "Foo"
}, {
  "id": 425038,
  "title": "Bar"
}, {
  "id": 425015,
  "title": "Narf"
}]

我使用oboe.js创建一个高地流:

代码语言:javascript
复制
const cruiseNidStream = _((push, next) => {
    oboe({
        url: 'http://fake.com/bar/overview,
        method: 'GET',
        headers: {
            'X-AUTH': 'some token',
        },
    }).node('.*', (overview) => {
        // I expect here to get an object having and id, title property
        push(null, overview.id);
    }).done((overview) => {
        push(null, _.nil);
    }).fail((reason) => {
        console.error(reason);
        push(null, _.nil);
    });
});

我的问题是,我不知道如何使用节点来匹配该数组的每个元素。目前,我在当前设置中获得的项都是所有对象和属性:

代码语言:javascript
复制
425055
Foo
{ id: 227709, title: 'Foo' }

如果响应具有如下属性:

代码语言:javascript
复制
{
  'overview': [],
}

我本可以用.overview.*的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-14 19:09:57

双簧管有两种方式来匹配数据,通过路径和鸭子类型.

打鸭

代码语言:javascript
复制
oboe('/data.json')
  .node('{id title}', function(x) {
    console.log('from duck-typing', x)
  })

旁路

代码语言:javascript
复制
oboe('/data.json')
  .node('!.*', function(x) {
    console.log('from path matching', x)
  })
  //or also valid
  .node('!.[*]', function(x) {
    console.log('from path matching', x)
  })

在path示例中,请注意!字符。这是指树的根节点,这种模式只会把你的三个对象,而不是自己的任何一个属性嵌套得更深。

我制作了一个高密,您可以在控制台中查看它,也可以查看查看源

票数 3
EN

Stack Overflow用户

发布于 2016-12-13 19:29:14

Oboe.js支持鸭子类型:

代码语言:javascript
复制
.node('{id title}', (overview) => {
 }

请注意,我的json是平的,所以这是可行的。对于嵌套的json,结果可能会有所不同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41129070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档