[英]Javascript - How to get rid of all square brackets in a Array
我正在尝试从 Google 等网站获取标题数据,并且进展顺利。 问题是我需要去掉很多方括号,因为这些方括号导致了我如何使用它们的一些问题(我将它们设置为 Node.js 应用程序中的响应标头)。
{
date: [ 'Thu, 03 Sep 2020 03:45:32 GMT' ],
expires: [ '-1' ],
'cache-control': [ 'private, max-age=0' ],
'content-type': [ 'text/html; charset=UTF-8' ],
'strict-transport-security': [ 'max-age=31536000' ],
p3p: [ 'CP="This is not a P3P policy! See g.co/p3phelp for more info."' ],
'content-encoding': [ 'gzip' ],
server: [ 'gws' ],
'x-xss-protection': [ '0' ],
'set-cookie': [
'NID=204=U6hVPXuZiH-T-DjyvLXiq9L5i3xt5TfKvTA0hY0EgPeksXwFjezsQfVjatUfj909sP1hCdyea3HxiycPT9oCBwS7JSFI6c5LivCkZZ2zJddeV_mx05I14piRoBAsOJQKtOKeMU8onSaOntLIRFZ8qp2qM1mhj54djbua_5WH_3M; expires=Fri, 05-Mar-2021 03:45:32 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=none'
],
'alt-svc': [
'h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"'
],
'transfer-encoding': [ 'chunked' ]
}
应该
{
date: 'Thu, 03 Sep 2020 03:45:32 GMT' ,
expires: '-1' ,
'cache-control': 'private, max-age=0' ,
'content-type': 'text/html; charset=UTF-8' ,
'strict-transport-security': 'max-age=31536000' ,
p3p: 'CP="This is not a P3P policy! See g.co/p3phelp for more info."' ,
'content-encoding': 'gzip' ,
server: 'gws' ,
'x-xss-protection': '0' ,
'set-cookie':
'NID=204=U6hVPXuZiH-T-DjyvLXiq9L5i3xt5TfKvTA0hY0EgPeksXwFjezsQfVjatUfj909sP1hCdyea3HxiycPT9oCBwS7JSFI6c5LivCkZZ2zJddeV_mx05I14piRoBAsOJQKtOKeMU8onSaOntLIRFZ8qp2qM1mhj54djbua_5WH_3M; expires=Fri, 05-Mar-2021 03:45:32 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=none'
,
'alt-svc':
'h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"'
,
'transfer-encoding': 'chunked'
}
我真的很喜欢帮助!
映射对象的条目以从每个条目中提取第一项,然后使用Object.fromEntries
将其转换回对象:
const output = Object.fromEntries(
Object.entries(input)
.map(([key, val]) => [key, val[0]])
);
const input = { date: [ 'Thu, 03 Sep 2020 03:45:32 GMT' ], expires: [ '-1' ], 'cache-control': [ 'private, max-age=0' ], 'content-type': [ 'text/html; charset=UTF-8' ], 'strict-transport-security': [ 'max-age=31536000' ], p3p: [ 'CP="This is not a P3P policy! See g.co/p3phelp for more info."' ], 'content-encoding': [ 'gzip' ], server: [ 'gws' ], 'x-xss-protection': [ '0' ], 'set-cookie': [ 'NID=204=U6hVPXuZiH-T-DjyvLXiq9L5i3xt5TfKvTA0hY0EgPeksXwFjezsQfVjatUfj909sP1hCdyea3HxiycPT9oCBwS7JSFI6c5LivCkZZ2zJddeV_mx05I14piRoBAsOJQKtOKeMU8onSaOntLIRFZ8qp2qM1mhj54djbua_5WH_3M; expires=Fri, 05-Mar-2021 03:45:32 GMT; path=/; domain=.google.com; Secure; HttpOnly; SameSite=none' ], 'alt-svc': [ 'h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"' ], 'transfer-encoding': [ 'chunked' ] }; const output = Object.fromEntries( Object.entries(input) .map(([key, val]) => [key, val[0]]) ); console.log(output);
如果您首先不确定某个值是否是数组,请改用
.map(([key, val]) => [key, Array.isArray(val) ? val[0] : val])
如果响应作为 JavaScript 对象提供给您,您可以简单地遍历所有条目并将条目值设置为字符串值代替数组(使用 for of)。 但是,如果响应以字符串格式提供给您,则字符串操作将是您需要替换每一行中的第一个 '[' 和最后一个 ']' 的关键。
但是,您需要检查原始值是否实际上是一个数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.