indexOf返回-1,为什么?

indexOf returns -1, why?

本文关键字:为什么 返回 indexOf      更新时间:2023-09-26

我正试图将一些XML转换成JSON模块xml2js,我刚刚开始

    request.execute('[someSP].[spSomeSP]', function(err, dataset) {
      _.forEach(dataset, function(items) {
        _.forEach(items, function(item) {
          console.log('>>>>', item);
        });
      });

其中console.log('>>>>', item);返回:

{ BET: 57635034,
  CUSTOMER: 181645,
  SPORT: 'NFL',
  XX_FILL_OPEN: '<element>'r'n't<element_type>wager_action_button</element_type>'t'r'n't<element_name>Fill Open</element_name>'r'n't<element_call>fillOpen(57635034)</element_call>'r'n't<element_content></element_content>'r'n</element>',
  XX_VIEW: '<element>'r'n't<element_type>betslip_selection_checkbox</element_type>'t'r'n't<element_name></element_name>'r'n't<element_call>addRemoveSelectionFromSlip_checkbox(1738756,0,1,1)</element_call>'r'n't<element_content>0</element_content>'r'n</element>',
  XX_CANCEL: null }

正如你在上面看到的,有一些道具从XX开始,每一个从XX开始的道具都有一个XML属性,我所需要的就是将每个XML属性转换成JSON,但是当我做item.indexOf('XX')时,我得到的都是-1

所以,我应该怎么做,以采取每一个道具开始与XX为了将其转换为JSON ?

item是一个对象。你可以将其转换为JSON,然后检查XX:

var json = JSON.stringify(item);
console.log(json.indexOf('XX')); // 49

或者,更好的方法是遍历对象的每个属性:

for(var key in item) {
    if(key.indexOf('XX') === 0) {
        console.log(key);
        console.log(item[key]);
    }
    // Or you can also check the value here...
    // item[key].indexOf('XX')
}