将对象数组中的特定值转换为小写

时间:2018-01-05 15:22:37

标签: javascript arrays

我试图弄清楚如何将对象数组中特定键的每个值转换为小写。例如,我想用键'Domain'来小写每个值:

var array = [
   { "Name" : "Bill":,
     "Domain" : "TEST.com",
   },
   { "Name" : "John":,
     "Domain" : "JohnTest.com",
   },
   { "Name" : "Fred":,
     "Domain" : "fredtest.com",
   }
]

会转换为:

var newArray = [
   { "Name" : "Bill":,
     "Domain" : "test.com",
   },
   { "Name" : "John":,
     "Domain" : "johntest.com",
   },
   { "Name" : "Fred":,
     "Domain" : "fredtest.com",
   }
]

我知道如何将toLowerCase()与字符串和数组一起使用,但我似乎无法弄清楚如何映射一组对象来执行此操作。我正在尝试这方面的事情:

var newArray = array.map(function(i) {
    return i.Domain.toLowerCase;

})

5 个答案:

答案 0 :(得分:2)

map返回另一个数组,因为你的数组的每个项都是一个对象,你需要在每次迭代时返回一个对象:

const array = [
   { "Name" : "Bill:",
     "Domain" : "TEST.com",
   },
   { "Name" : "John:",
     "Domain" : "JohnTest.com",
   },
   { "Name" : "Fred:",
     "Domain" : "fredtest.com",
   }
]

const result = array.map(item => ({
  ...item,
  Domain: item.Domain.toLowerCase()
}))

console.log(result)

答案 1 :(得分:0)

您的对象结构存在一些语法错误。但在修复它们之后,您只需枚举数组中的对象并将Domain属性重置为小写版本。



var array = [
   { "Name" : "Bill",
     "Domain" : "TEST.com"
   },
   { "Name" : "John",
     "Domain" : "JohnTest.com"
   },
   { "Name" : "Fred",
     "Domain" : "fredtest.com"
   }
]

// Enumerate the array items
array.forEach(function(obj){
  // Set the Domain property of the current object being enumerated
  // to the lowercase version of itself
  obj.Domain = obj.Domain.toLowerCase();
});

console.log(array);




答案 2 :(得分:0)

你可以使用这样的地图:

var newArray = array.map(function(elem, i) {
    return {
        Name: elem.Name,
        Domain: elem.Domain.toLowerCase()
    };
});

使用array.map函数时,内部函数的第一个参数是i,但希望你能通过我的例子理解第一个参数实际上是数组中的元素,并且第二个参数是'index'。

答案 3 :(得分:0)

首先删除":"在对象中的每个值之后。 其次,你应该通过"()"

调用toLowerCase方法
PlanID  InfoID  Comp    CompName    GuidID  Object
629293  196672  42256   BBZ         7       26
629296  196673  10001   CCC         7       14
629298  196674  10004   DDS         7       16

答案 4 :(得分:0)

    var newArray = [
    {
        "Name": "Bill",
        "Domain": "TesT.com",
    },
    {
        "Name": "John",
        "Domain": "Tohntest.com",
    },
    {
        "Name": "Fred",
        "Domain": "FredTe`enter code here`st.com",
    }
]

newArray = newArray.map(function (data) {
    return {
        Name: data.Name,
        Domain: data.Domain.toLowerCase().trim()
    }
})

console.log(newArray)

你可以这样试试