【问题标题】:How to remove single quote from array of objects in javascript如何从javascript中的对象数组中删除单引号
【发布时间】:2019-06-30 07:47:22
【问题描述】:

我想从 javascript 中的对象数组中删除单引号。

var arr = ['{"email":"abc@gmail.com","name":"Abc"}',
           '{"email":"def@hotmail.com","name":"Dr.Def"}',
           '{"email":"xyz@gmail.com","name":"Xyz"}',
           '{"email":"cad@hotmail.com","name":"Cat"}'];

我希望输出如下:

var arr=[{"email":"abc@gmail.com","name":"Abc"},
         {"email":"def@hotmail.com","name":"Dr.Def"},
         {"email":"xyz@gmail.com","name":"Xyz"},
         {"email":"cad@hotmail.com","name":"Cat"}];

【问题讨论】:

  • 你的问题现在没有意义了。如果您运行它,两个 sn-ps 中的 arr 将是相同的。请参阅jsfiddle.net/8o4z7agL 似乎您正在混淆代码中的引号和字符串本身的引号。
  • @Ivar 你可能会理解问题第一次理解问题然后响应
  • @Ajayyadav cmets is to request clarification 的目的之一。我试图解释为什么这个问题没有意义,所以 OP 可以理解并在必要时澄清。这个问题在我发表评论后的第二天就被编辑了,但是as it stood 两个版本都resulted in the exact same JavaScript object

标签: javascript arrays object single-quotes


【解决方案1】:

您可以使用Array.prototype.map()

map() 方法创建一个新数组,其结果是在调用数组中的每个元素上调用提供的函数。

JSON.parse()

JSON.parse() 方法解析 JSON 字符串,构造字符串描述的 JavaScript 值或对象。

var arr=[ '{"email":"abc@gmail.com","name":"Abc"}',
  '{"email":"def@hotmail.com","name":"Dr.Def"}',
  '{"email":"xyz@gmail.com","name":"Xyz"}',
  '{"email":"cad@hotmail.com","name":"Cat"}'];

var res = arr.map(info => JSON.parse(info));
// Or simply
// var res = arr.map(JSON.parse);
console.log(res);

【讨论】:

  • 但 JSON.parse(info) 也解析双引号。我不想删除我的双引号。
  • @KhyatiSharma 此代码的输出与您在第二个 sn-p 中声明 arr 时的输出相同。如果这不能回答您的问题,请edit 并详细说明您想要实现的目标。
【解决方案2】:

JSON. 单独解析对象并将其存储在新数组中并打印。

var arr=[ '{"email":"abc@gmail.com","name":"Abc"}',
  '{"email":"def@hotmail.com","name":"Dr.Def"}',
  '{"email":"xyz@gmail.com","name":"Xyz"}',
  '{"email":"cad@hotmail.com","name":"Cat"}'];
  var newarr=[];
arr.forEach((e)=>newarr.push(JSON.parse(e)))
console.log(newarr)
  

【讨论】:

    【解决方案3】:

    var arr = ['{"email":"abc@gmail.com","name":"Abc"}',
            '{"email":"def@hotmail.com","name":"Dr.Def"}',
            '{"email":"xyz@gmail.com","name":"Xyz"}',
            '{"email":"cad@hotmail.com","name":"Cat"}'];
          let output = [];
          for (let i = 0; i < arr.length; i++) {
            output.push(JSON.parse(arr[i]));
          }
          console.log(output);

    【讨论】:

      【解决方案4】:
      // Try this code by the "for in loop" method.
      
      let arr = ['{"email":"abc@gmail.com","name":"Abc"}',
                 '{"email":"def@hotmail.com","name":"dr.def"}',
                 '{"email":"xyz@gmail.com","name":"Xyz"}',
                 '{"email":"cad@hotmail.com","name":"Cat"}' ];
          
      let newArr = [];
      for (const item in arr)
      {
          newArr.push(JSON.parse(arr[item]))
      } 
      console.log(newArr)
      

      【讨论】:

      • Mukesh Fulwariya 的答案完全相同
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      • 2017-08-08
      • 2018-05-28
      • 2015-07-22
      相关资源
      最近更新 更多