如何找到对象的元素以从同一对象返回不同的元素

时间:2018-07-11 02:42:51

标签: javascript node.js ecmascript-6

我正在尝试从下面的数据中匹配条件,以检查headers(data.headers)是否具有accept = application / xml,那么只有它才能以xml格式返回body(data.body)。

下面是数据集

[ { url: '/a',

    status: '200',

    headers: [ 'content-type=application/json', 'accept=application/json' ],

    body: [ '{ name: Ant Man }' ] },

  { url: '/b',

    status: '400',

    headers: [ 'content-type=application/xml', 'accept=application/xml' ],

    body: '<name>Spiderman</name>' } ]

所以我正在编写以下代码,以特定格式检查所有4个元素(URL,状态,标头,正文),并尝试如果标头具有accept = application / xml,那么它将正文转换为xml格式。

if (! _.isNil( map.url ) ) map.url = map.url[0]

if (! _.isNil( map.status ) ) map.status = map.status[0]

if (! _.isNil( map.body ) ) {

    if (_.startsWith(map.body, '<')) map.body = map.body.join('\n')

}

if (! _.isNil(map.headers)) {

        ??
    }

尽管上面的代码给了我正确的答案,但是无法想到标题后面的逻辑来提供正确的条件而不是数据。body应该以'<'开头,以证明其是xml数据。任何帮助和逻辑要点都是很明显的:-)

1 个答案:

答案 0 :(得分:0)

这可以解决您的问题吗?

if (! _.isNil( map.header ) ) {

    if (map.header.includes('accept=application/xml')) map.body = map.body.join('\n')

}