Итак, как сказал charlietfl, причина в том, что for(const key of keys.length - 1)
похоже на написание for(const key of 5)
, но не так, как работают циклы for of
.
Я бы предложил сделать следующее:
var obj = {
a: "foo",
b: "bar",
c: "foobar",
d: "something1",
e: "something2",
f: "something3"
};
const keys = Object.keys(obj)
for (var i = 0; i < keys.length - 1; i++) {
console.log(obj[keys[i]])
}
Итак, что мы делаем здесь, мы делаем обычное for (var i = 0; i < length - 1; i++)
Здесь наша длина keys.length - 1
, что составляет 5
, поэтому мы пропустим последний, как вы хотите.
Затем запишите значение ключей obj console.log(obj[keys[i])
.
Надеюсь, это полезно, я также сделал фрагмент, чтобы вы могли увидеть его в действии.
var obj = {
a: "foo",
b: "bar",
c: "foobar",
d: "something1",
e: "something2",
f: "something3"
};
const keys = Object.keys(obj)
for (var i = 0; i < keys.length - 1; i++) {
console.log(obj[keys[i]])
}