我有一个名为attrs
的数组,有多个对象。
当我打印console.log(attrs)
时,我会得到这个
id:"123432"
class:"delivery"
selectParams:"{address:currentDelivery.customerDetails.dropID, type:'doorDelivery'}"
因为我有一个名为selectParams
的对象,
selectParams:"{address:currentDelivery.customerDetails.dropID, type:'doorDelivery'}"
console.log(attrs.selectParams)
我打印了那个对象,我得到了这样的解决方案,
{address:currentDelivery.customerDetails.dropID, type:'doorDelivery'}
现在我只需要type
来自这个对象,我试图像这样打印,
console.log(attrs.selectParams.type)
console.log(attrs.selectParams[0].type)
但是两个控制台都没有定义。如何只获得类型?
答案 0 :(得分:1)
从第一行代码看起来,该对象已被字符串化。尝试
JSON.parse(selectParams).type
答案 1 :(得分:1)
您的对象实际上是string
,因为它的值在""
中。如果您可以根据JSON
填充您的财产,则可以通过
const selectParams = '{"address":"currentDelivery.customerDetails.dropID", "type":"doorDelivery"}';
console.log(JSON.parse(selectParams).type)
如果你不能这样做而且也不能创建一个不是字符串的对象,你需要将你的字符串分成几部分并获得它。
但我认为您可以将其设为object
或JSON
格式。
答案 2 :(得分:1)
如何使用REGEX?
var text9393 = "{address:currentDelivery.customerDetails.dropID,type:'doorDelivery'}"
var test = /type:'(.*?)'/.exec(text9393);
console.log(test[1]);

如果你有多个相同的字符串,你可以使用:
var test = /type:'(.*?)'/.exec(text9393)[0];
最后的0将选择带有正则表达式条件的第一个对象。将其更改为1,它将选择第二个。
如果您希望表达式更具体,则可以使用RegExr.com
编辑此表达式这就是它现在选择的内容:
我希望这有帮助!
答案 3 :(得分:0)
得到解决方案:
var a=attrs.selectParams;
var b=a.split(':')[2].replace(/}|'/g,' ').trim()