Ниже приведен мой код, в котором я заглавными строками какого-либо объекта, теперь, когда я консолю в нижней части, он выглядит как область действия метода (toUpperCase в этом case) применяется только в цикле for. Я знаю, что могу добиться результата, сохранив/нажав результат на другой массив/объект, но я хочу знать, является ли их доступным/доступным методом/метод в JS, через который метод напрямую применяется к исходной переменной и напрямую меняет ее значение?Как изменить значение в JavaScript без сохранения в другую переменную
код-
var odr = {
testkey1: "a test",
testkey2: {
"name": "harris",
"city": "New York",
"addr": "107 Suite"
},
testkey3: "b test",
};
if(odr.testkey2 !== undefined) {
for(var key in odr.testkey2) {
if(odr.testkey2.hasOwnProperty(key)){
if(typeof odr.testkey2[key] == 'string') {
console.log(odr.testkey2[key].toUpperCase());
}
}
}
}
console.log(odr.testkey2);
Результат -
Object {name: "harris", city: "New York", addr: "107 Suite"}
Рабочая Fiddle - http://jsfiddle.net/o6d45en6/
Нет, я думаю, что все методы, которые модифицируют строку сделать это, а затем возвращают новую строку; почему вы против создания новой переменной? Вы можете (внутри цикла 'for':' odr.testkey2 [key] = odr.testkey2 [key] .toUpperCase() ', если вы просто не хотите создавать новую/временную переменную, чтобы выбросить. –
@DavidThomas Да, очень верно, что я проверил, и его работа в соответствии с комментарием, BTW, который я проверил, JS - это пропуск по значению, поэтому он не влияет непосредственно на значения..thx new для JS :) Имейте отличный день :) –