如何使用javascript将字符串转换为对象,并在snake_情况下返回一些键?

如何使用javascript将字符串转换为对象,并在snake_情况下返回一些键?,javascript,string,object,Javascript,String,Object,所以我试图编写一个函数,它将订单作为字符串,并将其转换为一个对象,其中产品将是键。关键值是数字形式的有序产品的数量。订单中的每个项目总是以产品的数量开始 如果产品名称由多个单词组成,则函数必须以snake_大小写格式组合这些单词。对于空字符串,函数必须返回空对象 有人能解释一下做这个功能的最佳方法吗 例如: myOrder('2 coca cola, 4 beer) // {coca_cola: 2, beer: 4} 您可以使用和: 函数myOrder(str){ 返回str.length

所以我试图编写一个函数,它将订单作为字符串,并将其转换为一个对象,其中产品将是键。关键值是数字形式的有序产品的数量。订单中的每个项目总是以产品的数量开始

如果产品名称由多个单词组成,则函数必须以snake_大小写格式组合这些单词。对于空字符串,函数必须返回空对象

有人能解释一下做这个功能的最佳方法吗

例如:

myOrder('2 coca cola, 4 beer) // {coca_cola: 2, beer: 4}
您可以使用和:

函数myOrder(str){
返回str.length==0?
{} :
str.split(',')
.map(s=>s.match(/(?\d+)\s*(?。+)/).groups)
.reduce((res,{name,qty})=>({
…res,[name.replace(/\s/g,'.''')]:+数量
}), {});
}
控制台日志(myOrder(“”));
console.log(myOrder('2可口可乐,4啤酒'));

控制台日志(myOrder('46 foos&bar,0fizz')因此,我想我将首先使用逗号作为分隔符拆分字符串,然后我将有一个数组,每个项目都有一个条目

之后,我将使用空格作为分隔符再次拆分它,并得到一个数组,其中第一个元素是数量,其他元素是项目的名称


从这里您可以构建所需的对象:)

nice snippet@blex!非常感谢你!