#javascript #arrays #object
#javascript #массивы #объект
Вопрос:
Я хотел бы создать объект или массив, который начнет цикл с # 32. Я пробовал что-то вроде этого:
var test = [{'recID':"32",'optionalCol':"first",'recID':"33",'optionalCol':"last",'recID':"34",'optionalCol':"age"}];
У меня это не сработало, я попытался выполнить цикл следующим образом:
for(var i=32; i < test.lenght; i ) {
console.log(test[i].recID);
}
Мне интересно, возможно ли это и как мой объект / массив должен быть структурирован, чтобы иметь возможность запускать мой цикл с 32? Если кто-нибудь может помочь, пожалуйста, дайте мне знать.
Комментарии:
1. Этого не должно быть
test.length
test.lenght
, не уверен, что это была просто опечатка.2. является ли 32 индексом? или это связано с идентификатором RecId? например, вам нужно начать итерацию, где RecId = 32?
3. Кроме того, ваш тестовый параметр — это не array, это object . Таким образом, вы не можете получить доступ к его элементам путем индексации (вот почему test[32] не работает)
4. Я должен начать свой цикл с 32, поэтому мой RecId должен быть индексом.
5. ваши свойства будут перезаписаны.
Ответ №1:
Что вы хотите сделать, это использовать ассоциативный массив, подобный этому:
var test = {
32: "first",
33: "last",
34: "age"
}
Вы можете выполнить итерацию объекта следующим образом:
for (t in test) {
console.log(test[t])
}
Или просто быстро получить доступ к элементу следующим образом:
console.log(test[33])
Проверьте jsfiddle: https://jsfiddle.net/xo0vuejt /
Комментарии:
1. @MartinGotteweis Как я могу проверить длину тестовой переменной? Обычно я делал это с помощью test. длина, но я не уверен, что это сработает в этом случае.
2.
.length
только для массивов. Вы можете использоватьObject.keys(test).length
. ПриметObject.keys()
объект и вернет массив ключей объекта.
Ответ №2:
Вы могли бы использовать объект с числами в качестве ключей и с объектами внутри, который отражает значения в вашем данном примере.
var test = {
32: {
'recID': "32",
'optionalCol': "first"
},
33: {
'recID': "33",
'optionalCol': "last"
},
34: {
'recID': "34",
'optionalCol': "age"
}
};
Эта структура позволяет получить доступ к свойству с
test[33].optionalCol
Выполните итерацию с
Object.keys(test).forEach(function (key, i, keys) {
// test[k] ...
});
Количество свойств объекта
Object.keys(test).length // 3