在文件中打印数组数组

时间:2018-05-06 08:19:03

标签: javascript arrays multidimensional-array

我有一个这样的数组:

array

我想将这个数组打印成一个文件,格式如下:

var ex = [{'id': 10, 'name': 'b', 'r': ['bill', 'ben']},
            {'id': 12, 'name': 'c', 'r': ['carl']},
            {'id': 4, 'name': 'a', 'r': ['alan', 'alexander', 'alexis']},
            {'id': 14, 'name': 'z', 'r': []}];

重要的是,很清楚哪些元素属于哪些元素。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用递归方法生成嵌套对象的所需输出。

function printObject(obj, prefix = '', space = '\t') {
  // iterate over all keys of the object(array is also an object)
  return Object.keys(obj).map(function(k) {
    // if nested property is object then recursively call the function
    if (typeof obj[k] === 'object')
      return prefix + k + ' : \n' + printObject(obj[k], prefix + space, space);
    // else print the value with the key
    else
      return prefix + k + ' : ' + obj[k];
  // finally join all the values with new line character
  }).join('\n');
}

function printObject(obj, prefix = '', space = '\t') {
  return Object.keys(obj).map(function(k) {
    if (typeof obj[k] === 'object')
      return prefix + k + ' : \n' + printObject(obj[k], prefix + space, space);
    else
      return prefix + k + ' : ' + obj[k];
  }).join('\n');
}



var ex = [{
    'id': 10,
    'name': 'b',
    'r': ['bill', 'ben']
  },
  {
    'id': 12,
    'name': 'c',
    'r': ['carl']
  },
  {
    'id': 4,
    'name': 'a',
    'r': ['alan', 'alexander', 'alexis']
  },
  {
    'id': 14,
    'name': 'z',
    'r': []
  }
];

console.log(printObject(ex))

要获得与问题相同的输出:

function printObject(obj, prefix = '', space = '\t') {
  return Object.keys(obj).map(function(k, i) {
    if (typeof obj[k] === 'object')
      return prefix + k + ' : ' + printObject(obj[k], prefix + space, space);
    else
      return (i ? prefix : prefix.replace(space,'')) + k + ' : ' + obj[k];
  }).join('\n');
}



var ex = [{
    'id': 10,
    'name': 'b',
    'r': ['bill', 'ben']
  },
  {
    'id': 12,
    'name': 'c',
    'r': ['carl']
  },
  {
    'id': 4,
    'name': 'a',
    'r': ['alan', 'alexander', 'alexis']
  },
  {
    'id': 14,
    'name': 'z',
    'r': []
  }
];

console.log(printObject(ex))