我需要遍歷一個物件,將所有要轉換的值falsey轉換"All"為該物件并將該物件轉換為字串。
我想我可以用它.reduce來替換錯誤的值,這很有效。但是我很難找到一種干凈的方法來讓每個鍵值對的物件作為自己的字串,用逗號分隔。
const object1 = {
a: 'somestring',
b: 42,
c: false,
d: null,
e: 0,
f: "Some"
};
let newObj = Object.keys(object1).reduce((acc, key) => {
if(!object1[key]){
object1[key] = "All"
}
return {...acc, [key]: object1[key]}
}, {})
console.log(Object.entries(newObj).join(":"));
我的預期結果是"a: somestring, b: 42, c: All, d: All, e:All, f:Some"
uj5u.com熱心網友回復:
你應該做這樣的事情
const object1 = {
a: 'somestring',
b: 42,
c: false,
d: null,
e: 0,
f: "Some"
};
const string = Object.entries(object1).map(([k, v]) => `${k}: ${v? v: 'All'}`).join(',')
console.log(string)
uj5u.com熱心網友回復:
const object1 = {
a: 'somestring',
b: 42,
c: false,
d: null,
e: 0,
f: "Some"
};
let newObj = Object.keys(object1).reduce((acc, key) => {
if(!object1[key]){
object1[key] = "All"
}
return {...acc, [key]: object1[key]}
}, {})
const f = JSON.stringify(newObj)
console.log(typeof f)
這會將您的“字串”列印到控制臺:)
uj5u.com熱心網友回復:
也許這會有所幫助,
const object1 = {
a: 'somestring',
b: 42,
c: false,
d: null,
e: 0,
f: "Some"
};
const objToString = Object.keys(object1)
.reduce((prev, key, index) => prev `${key}: ${object1[key] || "All"}, `, "")
.slice(0, -2);
console.log(objToString);
// a: somestring, b: 42, c: All, d: All, e: All, f: Some
uj5u.com熱心網友回復:
你可以撰寫自己的函式來實作這一點
var toString = function(object){
if(object instanceof Object){
let objkeys = Object.keys(object);
let str = "";
for(let k of objkeys){
object[k]= object[k]==null?"all":object[k];
if(str!="")
str =", ";
str =k ":" object[k];
}
return str;
}
return "";
}
會給你想要的結果
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/503699.html
標籤:javascript 数组 细绳 目的 字符串
