如何从字符串中提取带有“”的对象[重复]
Posted
技术标签:
【中文标题】如何从字符串中提取带有“”的对象[重复]【英文标题】:How extract Object with " " from an string [duplicate]如何从字符串中提取带有“”的对象[重复] 【发布时间】:2020-06-03 18:47:24 【问题描述】:我尝试从下面的数组中提取对象:
var array = [];
array =
a,b,c,"A":"0","f":"1","g":"2","B":"5","v":"8","x":"4","C":"0","f":"1","g":"2",c,b
想象一下提取这个:
result = [
"A":"0","f":"1","g":"2","B":"5","v":"8","x":"4","C":"0","f":"1","g":"2"
]
我使用了我的代码,但没有给我正确的答案:
for (var i =0 ; i < array.length ; i++)
console.log((array[i].split(','));
在这段代码中,我只获取每一行中的每个变量 我需要更多的东西,因为每次也许我有不同的 在此示例中具有例如 2 个对象的数组我只有 3 对象。我尝试定义如果我有任何对象,我可以找到它们并将它们推送到一个数组中。
【问题讨论】:
什么是a
、b
和c
?
他们是一个变量想象 1,2,3
我想我的问题是那些可以是任意值吗?如果是,是什么让您要提取的对象特别?
【参考方案1】:
您可以使用Array.filter
var array = [];
array = [
'a','b','c',"A":"0","f":"1","g":"2","B":"5","v":"8","x":"4","C":"0","f":"1","g":"2",'c','b'
];
let result = array.filter(e => typeof e === 'object');
console.log(result)
【讨论】:
也许 OP 不想要null
值。
Maybe
?我刚刚在提供的输入上添加了解决方案,因为输入中没有任何空值,我将保持原样。但是,过滤掉空值并不是什么大的变化。
我使用这段代码但报错:array.filter is not a function
我像这样创建数组 = [ ] 但我的回答不是数组 这是字符串 我不能对字符串使用过滤器 我应该改变我的问题【参考方案2】:
您可以使用数组缩减功能。在reduce回调中检查元素的类型是否为object
,然后在累加器数组中推送元素
var array = [];
array = [
'a', 'b', 'c',
"A": "0",
"f": "1",
"g": "2"
,
"B": "5",
"v": "8",
"x": "4"
,
"C": "0",
"f": "1",
"g": "2"
,
'c', 'b'
];
let newArr = array.reduce((acc, curr) =>
if (typeof(curr) === 'object')
acc.push(curr)
return acc;
, []);
console.log(newArr)
【讨论】:
也许 OP 不想要null
值以上是关于如何从字符串中提取带有“”的对象[重复]的主要内容,如果未能解决你的问题,请参考以下文章