我有一个数组:
var assArray = {};
assArray["VeryImportantData1"]="VeryImportant";
assArray["VeryImportantDataTest"]="VeryImportant";
assArray["Very"]="VeryImportant";
assArray["Vey"]="VeryImportant";
assArray["Test"]="VeryImportant";
assArray["Dumdum"]="VeryImportant";
如何在Javascript中获取此数组中每个元素的索引?
答案 0 :(得分:1)
首先,一些术语:这不是一个数组,它是一个对象。
现在已经不在了,我无法确定你要求的是什么。您是在寻找这个,也许?:
for( var i in assArray) {
alert(i+": "+assArray[i]);
// bad example, do something useful here
}
答案 1 :(得分:1)
您可以使用以下内容:
var keys = Object.keys(assArray);
for(var index = 0; index < keys.length; index++)
{
var key = keys[index];
// Do something with the index and key...
alert(key + ' has an index of: ' + index);
}
Object.keys(obj)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
Object.keys返回一个数组,其元素是对应的字符串 到直接在对象上找到的可枚举属性。订购 属性与循环遍历的属性相同 手动对象的属性。
答案 2 :(得分:0)
基本上你在这里拥有一组“关键”“价值”对。您没有包含0 ... n索引的数组。要访问数据结构,您需要使用密钥(“VeryImportantData1”,“VeryImportantDataTest”等)。
如何访问键/值的简单示例:
警报(assArray [ '达姆弹']); //这将提醒“VeryImportant”
的console.log(assArray [ '维伊']); //这将记录“VeryImportant”
答案 3 :(得分:0)
您可以使用以下内容:
function getKeyListFor(obj, term, sortOpt) {
var keys=[];
for (var k in obj) {
if (obj[k] === term) keys.push(k);
}
if (keys.length) {
if (sortOpt) keys.sort();
return keys;
}
else {
return null;
}
}
注意:sort-argument是可选的。 (因为关联数组(对象)的键在内部存储为哈希值,所以它们以明显随机的顺序返回。请注意,没有任何排序函数作为参数的Array.sort()总是以递增顺序执行字符串比较。作为任何值-type可以转换为有意义的字符串表示,这也是一个理智的默认值。)
// Usage example
var fruitColors = {
'banana': 'yellow',
'apple': 'red',
'orange': 'orange',
'strawberry': 'red'
}
var redList = getKeyListFor( fruitColors, 'red', true );
// returns ['apple', 'strawberry']
var blueList = getKeyListFor( fruitColors, 'blue' );
// returns null
if (blueList) {
// delete all blue entries
for (var i=0; i<blueList.length; i++) {
var key = blueList[i];
delete fruitColors[key];
}
}