如何从字符串中提取带有“”的对象[重复]

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 对象。我尝试定义如果我有任何对象,我可以找到它们并将它们推送到一个数组中。

【问题讨论】:

什么是abc 他们是一个变量想象 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

以上是关于如何从字符串中提取带有“”的对象[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从R中的字符串中提取对象数组[重复]

如何从重复的字符串中提取单词

如何从字符串中提取浮点数[重复]

如何使用正则表达式从字符串中提取文件名[重复]

如何从javascript中的rgb字符串中提取颜色值[重复]

Typescript - 从包含符号的文本中提取字符串[重复]