我定义了以下对象:
let myObj = {
my: 'name',
is: 'Inigo Montoya',
prepare: 'to die!'
}
使myObj等于{“我的名字叫Inigo Montoya准备死了!”的最佳方法是什么? }?
我知道您可以使用JSON进行Stringify,但我想使用本机Javascript进行。我已经尝试了以下方法来获取由所有对象属性和值组成的字符串:
let combined = Object.entries(obj).forEach(entire => {
return `${entrie[0]} ${entrie[1]}` });
但是我只会变得不确定。
我很想理解为什么在这种特殊情况下我变得不确定,并且还希望您能说出解决上述问题的最佳方法。谢谢!
答案 0 :(得分:7)
您不能从forEach返回,而不能从map
返回到返回的成对字符串的数组,然后将其连接到一个字符串:
Object.entries(obj).map(entry => `${entry[0]} ${entry[1]}`).join(" ");
或者我会做
Object.entries(obj).flat().join(" ")
答案 1 :(得分:1)
forEach返回undefined
。您可以使用Object.entries和reduce
let myObj = {my: 'name',is: 'Inigo Montoya',prepare: 'to die!'}
let string = Object.entries(myObj)
.reduce((op,[key,value])=>op+= ' '+ key + ' '+ value, '')
.trim()
console.log(string)
答案 2 :(得分:1)
使用String constructor
将object
转换为string
并使用split
和join
删除:
和,
< / p>
let myObj = {
my: 'name',
is: 'Inigo Montoya',
prepare: 'to die!'
}
console.log(String(JSON.stringify(myObj)).split(':').join(" ").split(',').join(' ').split(`"`).join(''))
答案 3 :(得分:1)
let myObj = {
my: 'name',
is: 'Inigo Montoya',
prepare: 'to die!'
}
const res = Object.entries(myObj).map(el => el[0].concat(" " + el[1])).join(" ")
console.log(res)
答案 4 :(得分:0)
您可以使用reduce()
,因为forEach()
总是返回undefined
let myObj = {
my: 'name',
is: 'Inigo Montoya',
prepare: 'to die!'
}
let combined = Object.entries(myObj).reduce((ac,entrie)=> ac + ` ${entrie[0]} ${entrie[1]} ` ,'').trim();;
console.log(combined)
答案 5 :(得分:0)
let myObj = {
my: 'name',
is: 'Inigo Montoya',
prepare: 'to die!'
}
var the_keys = Object.keys(myObj),
length = the_keys.length,
resArray = new Array(length);
while (length--) {
resArray[length] = [the_keys[length], myObj[the_keys[length]]];
}
var myStr = resArray.join(" ").replace(/,/g, ' ');
console.log(myStr);
此答案将适合那些拥有older browser that does not support Object.entries
的人。该代码设置了三个变量: the_keys 分配了将myObj
传递给Object.keys()
的结果, length 被分配了该数组的length属性, resArray 是通过使用 length 变量进行设置来创建新数组的结果。然后,用包含每个键及其对应值的数组迭代地填充 resArray 。变量 myStr 是通过将 resArray 的值与空格和replacing的所有逗号与空格连接在一起来实现的。