在javascript中,如何用对象的类型替换对象属性的值? 让我们考虑一个变量OBJ,它定义为: var obj = { one: "I am a String", two: {}, three: 3, four: [] }
现在,让我们设想一个名为replaceWithType的函数,它可以像这样使用:在javascript中,如何用对象的类型替换对象属性的值? 让我们考虑一个变量OBJ,它定义为: var obj = { one: "I am a String", two: {}, three: 3, four: [] },javascript,object,types,Javascript,Object,Types,现在,让我们设想一个名为replaceWithType的函数,它可以像这样使用: var type = replaceWithType(obj) console.log(JSON.stringify(type)) 这将产生: {"one":"string","two":"object","three":"number","four":"array"} 因此,您可以看到,replaceWithType,将值替换为它们的类型,但是我不理解如何构建这个函数。那么,您能给我一个如何实现这一点的快速演
var type = replaceWithType(obj)
console.log(JSON.stringify(type))
这将产生:
{"one":"string","two":"object","three":"number","four":"array"}
因此,您可以看到,replaceWithType,将值替换为它们的类型,但是我不理解如何构建这个函数。那么,您能给我一个如何实现这一点的快速演示吗?使用和:
常量对象={
一:我是一根弦,
二:{},
三:三,,
四:[]
}
const result=Object.entriesobj.reducea[k,v]=>{
a[k]=Array.isArrayv?'Array':v的类型;
返回a;
}, {};
console.logresult 您可以将所有条目与其类型进行映射,并从中获取一个新对象 var obj={1:I是字符串,2:{},3:3,4:[]}, 结果=Object.fromEntriesObject .Entriesbj .map[k,v]=>[k,Array.isArrayv?'Array':v的类型] ; console.logresult; 我们在这里做的是: 首先使用Object.keys函数从 对象,以便我们可以遍历它们 然后使用array.prototype.map函数遍历每一个。您可以将.map视为更方便的for循环 最后,我们通过 使用返回值类型的typeof运算符。这个语法obj[value]和说obj.value是一样的
下面是一个最新的完整示例:未定义、布尔值、数字、字符串、BigInt、符号、null、对象、函数数组不在其中,但我还是将其包括在内: var obj={ 一:我是一根弦, 二:{}, 三:三,, 四:[], 五:=>{}, 六:空, 七:未定义, 八:对,, 9:1n, 十:Symbol1, }, 结果=Object.fromEntries Object.entriesobj.map[k,v]=>{ let型; 切换为真{ case Array.isArrayv: 类型=数组; 打破 案例v==空: type=null; 打破 违约: 类型=v型; } 返回[k,type]; } ; console.logresult;你试过obj[objKey]=obj[objKey]的类型吗?
var obj = {
one: "I am a String",
two: {},
three: 3,
four: []
}
Object.keys(obj).map((key) => {
obj[key] = typeof obj[key]
})
console.log(obj)