Node.js применяет выбор вложенного столбца JSON - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть массив JSON, и я пытаюсь применить метод toLowerCase к
элементу «first».Как бы я применил это к списку объектов клиентов вместо одного Клиента?

Один клиент работает нормально:

console.log(String.prototype.toLowerCase.apply(data.Customers.Customer[0]["first"]))
console.log(String.prototype.toLowerCase.apply(data.Customers.Customer[1]["first"]))

возвращает джим и джим, как и ожидалось

Но когда я пытаюсь применить к массиву клиентов (удалено [0]):

console.log(String.prototype.toLowerCase.apply(data.Customers.Customer["first"]))

Ошибка:

TypeError: String.prototype.toLowerCase вызывается с нулевым или неопределенным значениемat toLowerCase ()

Мой ввод json:

var data = JSON.parse ('{"Customers": {"Customer": [{"first": ["JIM"]," last ": [" BEAM "]," address ": [" 22. JIM. RD. "]," age ": [" 24 "]," age2 ": [" 2.0 "]," Phone": [" 206-555-0144 "]}, {" first ": [" c2 "]," last ": [" r2 "]," address ": [" 23. R. RD. "],"возраст ": [" 22 "]," age2 ": [" 2,2 "]," Телефон ": [" 999-555-0144" ]}]}} ')

1 Ответ

1 голос
/ 10 апреля 2019

Поскольку data.Customers.Customer является массивом, вам необходимо выполнить итерации по нему.

var data=JSON.parse('{"Customers":{"Customer":[{"first":["JIM"],"last":["BEAM"],"address":["22. JIM. RD."],"age":["24"],"age2":["2.0"],"Phone":["206-555-0144"]},{"first":["c2"],"last":["r2"],"address":["23. R. RD."],"age":["22"],"age2":["2.2"],"Phone":["999-555-0144"]}]}}')


data.Customers.Customer.forEach( c =>{
//  console.log(c)
  c.first = String.prototype.toLowerCase.apply(c.first)
})

console.log(data.Customers.Customer[0]["first"])
console.log(data.Customers.Customer[1]["first"])
...