将 JavaScript 字符串解析为 2 个数组
Posted
技术标签:
【中文标题】将 JavaScript 字符串解析为 2 个数组【英文标题】:Parsing JavaScript string into 2 arrays 【发布时间】:2022-01-15 22:23:17 【问题描述】:您有一个格式如下的字符串:“Applejack=A.J.+Applecar,Lemon+Vodka=AlfieCocktail+ Sunset + SexOnTheBeach”等等。
在 javascript(使用 .split())中,编写代码来解析这样的字符串(可以是 100000 个字符长),将输入放入 2 个不同的数组(数组键、数组值)中,这样数组就会像以下:
key = [“苹果杰克”,“柠檬+伏特加”]
值 = ["A.J+Applecar","AlfieCocktail+Sunset+SexOnTheBeach"]
【问题讨论】:
你尝试了什么? 【参考方案1】:key = string.split(',').map(x=>x.split("=")[0])
values = string.split(',').map(x=>x.split("=")[1])
【讨论】:
【参考方案2】:你可以这样做
var str = "Applejack=A.J.+Applecar,Lemon+Vodka=AlfieCocktail+ Sunset + SexOnTheBeach";
var first = str.split(',');
var keys = [];
var values = [];
for(let i = 0; i < first.length; i++)
let in_two = first[i].split('=');
keys.push(in_two[0]);
values.push(in_two[1]);
console.log(keys);
console.log(values);
【讨论】:
【参考方案3】:你可以这样做:
let str = "Applejack=A.J.+Applecar,Lemon+Vodka=AlfieCocktail+ Sunset + SexOnTheBeach";
let allValues = str.split(','), keys = [], values = [];
allValues.forEach(value =>
const [k,v] = value.split('=');
keys.push(k);
values.push(v);
)
console.log(keys,values);
【讨论】:
【参考方案4】:您可以简单地将 map 与 reduce 一起使用。
const str =
"Applejack=A.J.+Applecar,Lemon+Vodka=AlfieCocktail+ Sunset + SexOnTheBeach";
const [keys, values] = str
.split(",")
.map((item) => item.split("="))
.reduce(
(acc, item) => [acc[0].concat(item[0]), acc[1].concat(item[1])],
[[], []]
);
console.log(keys, values);
【讨论】:
以上是关于将 JavaScript 字符串解析为 2 个数组的主要内容,如果未能解决你的问题,请参考以下文章
javascript中如何传个数组到后台String [ ] 接收?
华为OD机试 -统计匹配的二元组个数(JavaScript) | 机试题+算法思路+考点+代码解析 2023
Javascript - 在默认解析之前将 EXTRA LARGE 数字转换为 JSON 中的字符串