合并所有JavaScript对象值

我在javascript中写了一个结合所有对象值的示例代码。

在仅排列值后与“join”组合是可能的。

如果对象中有对象,则创建一个可以递归处理的函数,而无需使用“join”并将其连接起来。

合并所有对象值

要组合所有对象值

1. 使用“Object.values”转换为仅包含“值”的数组

2. 加入“join”中指定的字符

let obj = {1: 'aaa', 2: 'bbb', 3: 'ccc'};

console.log(Object.values(obj));
//  ['aaa', 'bbb', 'ccc']

console.log(Object.values(obj).join('-'));
// aaa-bbb-ccc

console.log(Object.values(obj).join(''));
// aaabbbccc

如果包含数组,它将以逗号分隔,因此将其全部转换为逗号后,用“替换”等删除它。

let obj = {1: 'aaa', 2: 'bbb', 3: ['ccc','ddd']};

console.log(Object.values(obj));
//  ['aaa', 'bbb', Array(2)]

console.log(Object.values(obj).join('-'));
// aaa-bbb-ccc,ddd

console.log(Object.values(obj).join(''));
// aaabbbccc,ddd

console.log(Object.values(obj).join(',').replace(/,/g, ''));
// aaabbbcccddd

合并所有JavaScript对象值

如果它包含一个对象,它将是“[object Object]”。

let obj = {1: 'aaa', 2: 'bbb', 3: { 4: 'ccc', 5: 'ddd' }};

console.log(Object.values(obj));
//  ['aaa', 'bbb', {4: 'ccc', 5: 'ddd'}]

console.log(Object.values(obj).join('-'));
// aaa-bbb-[object Object]

console.log(Object.values(obj).join(''));
// aaabbb[object Object]

然而,它可以通过如下递归处理来组合。

let obj = {1: 'aaa', 2: 'bbb', 3: { 4: 'ccc', 5: 'ddd' }};

let str = '';

function getValue(obj, name = "") {

  for (let key in obj) {

      if (typeof obj[key] == "object") {            
        getValue( obj[key], name + " " + key )
      } else {                        
        str = str + obj[key];
      }
  }

}

getValue(obj);

console.log(str);
// aaabbbcccddd


最后编辑于:2023/03/11作者: 烽烟无限