我在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
如果它包含一个对象,它将是“[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