我试图弄清楚如何将对象数组中特定键的每个值转换为小写。例如,我想用键'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;
})
答案 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)
你可以这样试试