Javascript数组索引对象

时间:2013-07-14 13:40:28

标签: javascript

我有一个数组:

var assArray = {};
assArray["VeryImportantData1"]="VeryImportant"; 
assArray["VeryImportantDataTest"]="VeryImportant"; 
assArray["Very"]="VeryImportant"; 
assArray["Vey"]="VeryImportant"; 
assArray["Test"]="VeryImportant"; 
assArray["Dumdum"]="VeryImportant"; 

如何在Javascript中获取此数组中每个元素的索引?

4 个答案:

答案 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];
    }
}