是否有一种单行代码可以将未知大小的字典的键和值连接成 JS 中的字符串?
Is there a one-liner to concatenate the key and values of a dict of unknown size into a string in JS?
我正在尝试尽可能优雅地将字典解析为一行中的字符串。
字符串可以包含 1 到 10 个键值对。
我的字典:
var dict = {
rel: 'preload',
as: 'image',
type: 'image/webp'
}
我正在尝试将其解析为查询字符串,将其转换为:
return "rel='preload' as='image' type='image/webp'"
我知道使用 Object.keys 和 forEach 我可以遍历 Dict 但我如何在同一语句中也连接它?
这是我的进度:
Object.keys(dict).forEach(key => console.log(`${key}="${dict(key)}"`) )
如何在同一行中连接结果?可能吗?
我一直在尝试:
.reduce()
.push()
.concat()
.join()
但似乎无法让它在一行中工作。
您可以使用 reduce
:
const dict = {
rel: 'preload',
as: 'image',
type: 'image/webp'
};
let result = Object.keys(dict).reduce((acc, key) => acc + `${key}=${dict[key]} ` ,'');
console.log(result);
这条线可能适合你:
const dict = {
rel: 'preload',
as: 'image',
type: 'image/webp'
};
const result = Object.entries(dict).map(item => `${item[0]} = '${item[1]}'`).join(' ')
console.log(result)
这是获得所需结果的一种方法。
const dict = {
rel: 'preload',
as: 'image',
type: 'image/webp'
};
console.log(
Object.entries(dict)
.map(([k, v]) => (`${k}='${v}'`))
.join(' ')
);
它使用
- Object.entries() - 从对象
获得key-value对
- .map() - 遍历 key-value 对
- 反引号 ` - 将每对转换为所需的结构
- .join() - 最终将数组转换为字符串
我正在尝试尽可能优雅地将字典解析为一行中的字符串。
字符串可以包含 1 到 10 个键值对。
我的字典:
var dict = {
rel: 'preload',
as: 'image',
type: 'image/webp'
}
我正在尝试将其解析为查询字符串,将其转换为:
return "rel='preload' as='image' type='image/webp'"
我知道使用 Object.keys 和 forEach 我可以遍历 Dict 但我如何在同一语句中也连接它?
这是我的进度:
Object.keys(dict).forEach(key => console.log(`${key}="${dict(key)}"`) )
如何在同一行中连接结果?可能吗? 我一直在尝试:
.reduce()
.push()
.concat()
.join()
但似乎无法让它在一行中工作。
您可以使用 reduce
:
const dict = {
rel: 'preload',
as: 'image',
type: 'image/webp'
};
let result = Object.keys(dict).reduce((acc, key) => acc + `${key}=${dict[key]} ` ,'');
console.log(result);
这条线可能适合你:
const dict = {
rel: 'preload',
as: 'image',
type: 'image/webp'
};
const result = Object.entries(dict).map(item => `${item[0]} = '${item[1]}'`).join(' ')
console.log(result)
这是获得所需结果的一种方法。
const dict = {
rel: 'preload',
as: 'image',
type: 'image/webp'
};
console.log(
Object.entries(dict)
.map(([k, v]) => (`${k}='${v}'`))
.join(' ')
);
它使用
- Object.entries() - 从对象 获得key-value对
- .map() - 遍历 key-value 对
- 反引号 ` - 将每对转换为所需的结构
- .join() - 最终将数组转换为字符串