我在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
评论列表:
发布于 4天前回复该评论
发布于 3天前回复该评论
发布于 3天前回复该评论
发布于 3天前回复该评论
发布于 3天前回复该评论