【问题标题】:Convert array of objects into lowercase将对象数组转换为小写
【发布时间】:2018-07-15 04:57:26
【问题描述】:

数组如下所示:

"myTags":
[{
  "type":"one",
  "value":"Testing",
  "note":"Hey"
},{
  "type":"two",
  "value":"Yg5GE",
  "note":"hey2"
}]

我需要将 type:'one' value 'Testing' 转换为小写,即 value = Testing 需要是 'testing'。有没有办法保持相同的结构?

注意:"type":"one","value":"Testing", 可能并不总是包含在数组中。所以我想在这种情况下我首先需要检查它们是否存在?

我已经尝试过 .map,但是我无法获得我想要的结果。任何帮助,将不胜感激。

理想结构:

  "myTags":
  [{
    "type":"one",
    "value":"testing",
    "note":"hey"
  },{
    "type":"two",
    "value":"Yg5GE",
    "note":"hey2"
  }]

【问题讨论】:

  • “我已经尝试了 .map,但是我无法获得我想要的结果” - 然后请添加您的尝试,以便我们帮助您理解和解决问题。
  • 如果结构是灵活的(也就是说,它并不总是相同的,并且您想更改 all 可能的值),您可以将其视为一棵树,遍历它,然后到达叶子时更改值。但在不知道你已经尝试过什么的情况下,你可能已经尝试过了。

标签: javascript arrays node.js


【解决方案1】:

这个很好用

 $(document).ready(function(){

 var objects ={"myTags":

 [{"type":"one","value":"Testing", "note":"Hey"}

 ,{ "type":"two", "value":"Yg5GE", "note":"hey2"}]}; 

  var obj = objects.myTags.map(function(a) { 
  a.value = a.value.toLowerCase();
  return a;

 });
 console.log(obj);
 });

输出:

  {type: "one", value: "testing", note: "Hey"}

  {type: "two", value: "yg5ge", note: "hey2"}

谢谢

【讨论】:

    【解决方案2】:

    遍历myTags 中的元素,检查type 是否为"one",然后才将value 的内容更改为小写(如果存在)

    var data = {
      "myTags": [{
        "type": "one",
        "value": "Testing",
        "note": "Hey"
      }, {
        "type": "one",
        "note": "Hey"
      }, {
        "type": "two",
        "value": "Yg5GE",
        "note": "hey2"
      }]
    };
    
    data.myTags.forEach(function(tag) {
      if (tag.type === "one" && typeof tag.value !== "undefined") {
        tag.value = tag.value.toLowerCase();
      }
    });
    
    console.log(data.myTags);

    您也可以先过滤myTags 的内容以获取带有"type": "one" 的元素并仅遍历这些元素

    var data = {
      "myTags": [{
        "type": "one",
        "value": "Testing",
        "note": "Hey"
      }, {
        "type": "one",
        "note": "Hey"
      }, {
        "type": "two",
        "value": "Yg5GE",
        "note": "hey2"
      }]
    };
    
    data.myTags
        .filter(function(tag) {
          return tag.type === "one";
        })
        .forEach(function(tag) {
          if (typeof tag.value !== "undefined") {
            tag.value = tag.value.toLowerCase();
          }
        });
    
    console.log(data.myTags);

    【讨论】:

      猜你喜欢
      • 2011-02-28
      • 2021-09-03
      • 1970-01-01
      • 2021-05-03
      • 2018-12-04
      • 2021-06-16
      • 1970-01-01
      相关资源
      最近更新 更多