Javascript 如何仅从对象获取所需数据

Javascript 如何仅从对象获取所需数据,javascript,jquery,Javascript,Jquery,我有一个名为attrs的数组,其中包含多个对象 当我打印console.log(attrs)时,我会得到这个 id:"123432" class:"delivery" selectParams:"{address:currentDelivery.customerDetails.dropID, type:'doorDelivery'}" 其中有一个对象名为selectParams,如下所示 selectParams:"{address:currentDelivery.customerDetail

我有一个名为
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'}
console.log(attrs.selectParams.type)

console.log(attrs.selectParams[0].type)
我已经打印了那个物体,我得到了这样的解决方案

selectParams:"{address:currentDelivery.customerDetails.dropID, type:'doorDelivery'}"
console.log(attrs.selectParams)
{address:currentDelivery.customerDetails.dropID, type:'doorDelivery'}
console.log(attrs.selectParams.type)

console.log(attrs.selectParams[0].type)
现在我只需要从这个对象中输入
,我试着这样打印

selectParams:"{address:currentDelivery.customerDetails.dropID, type:'doorDelivery'}"
console.log(attrs.selectParams)
{address:currentDelivery.customerDetails.dropID, type:'doorDelivery'}
console.log(attrs.selectParams.type)

console.log(attrs.selectParams[0].type)

但是我对这两个控制台都没有定义。如何只获取类型?

从您的第一行代码中可以看出,对象已被字符串化。试一试

JSON.parse(selectParams).type

从您的第一行代码中可以看出该对象已被字符串化。试一试

JSON.parse(selectParams).type

您的对象实际上是一个
字符串
,因为它的值位于
中。如果您可以根据
JSON
填充您的属性,您可以通过

const selectParams='{“address”:“currentDelivery.customerDetails.dropID”,“type”:“doorDelivery”};

console.log(JSON.parse(selectParams.type)
您的对象实际上是一个
字符串,因为它的值在
中。如果您可以根据
JSON
填充您的属性,您可以通过

const selectParams='{“address”:“currentDelivery.customerDetails.dropID”,“type”:“doorDelivery”};
console.log(JSON.parse(selectParams).type)
获得解决方案:

var a=attrs.selectParams;
var b=a.split(':')[2].replace(/}|'/g,' ').trim()
获得解决方案:

var a=attrs.selectParams;
var b=a.split(':')[2].replace(/}|'/g,' ').trim()
使用正则表达式怎么样

var text9393=“{地址:currentDelivery.customerDetails.dropID,类型:'doorDelivery'}”
var test=/type:“(.*?”/.exec(text9393);
控制台日志(测试[1])使用正则表达式怎么样

var text9393=“{地址:currentDelivery.customerDetails.dropID,类型:'doorDelivery'}”
var test=/type:“(.*?”/.exec(text9393);


控制台日志(测试[1])这不是JSON。好吧,至少在上面使用
JSON.parse
是无效的。是的,这是真的,Yury,我只是希望它实际上是有效的JSON,只是被错误地复制了过来,因为将对象作为字符串,而不是真正的字符串化JSON,这是非常奇怪的。当我尝试这样做时,我在JSON中的位置1处得到错误
意外的标记r
这不是JSON。好吧,至少在上面使用
JSON.parse
是无效的。是的,这是真的,Yury,我只是希望它实际上是有效的JSON,只是被错误地复制了过来,因为将对象作为字符串,而不是真正的字符串化JSON,这是非常奇怪的。当我尝试这样做时,我在位置1处收到错误
JSON中的意外标记r
当我尝试这样做时,我在位置1处收到错误
JSON中的意外标记r
,因为您正在尝试解析JSON。如果它已经是一个JSON@krish你有合适的
JSON
格式吗?。你能展示它吗?@krish展示完整的attrs数组…这样你就能快速得到解决方案当我尝试这样做时,我在位置1处得到错误
JSON中意外的标记r,因为你试图解析JSON。如果它已经是一个JSON@krish你有合适的
JSON
格式吗?。你能展示它吗?@krish展示完整的attrs数组…这样你就能快速得到解决方案
var a=attrs.selectParams;var b=JSON.parse(a);log(b)
这是我尝试过的,我在JSON中的位置1处得到错误
意外的令牌r
var a=attrs.selectParams;var b=JSON.parse(a);console.log(b)
这是我尝试过的,我在位置1得到错误
JSON中意外的标记r
编辑代码段,这样代码只显示doorDelivery,所以它不显示数组,而只显示类型内的值。编辑代码段,这样代码只显示doorDelivery,所以它不显示数组,而只显示类型内的值。