Javascript数组索引对象

Javascript array index object

本文关键字:对象 索引 数组 Javascript      更新时间:2023-09-26

我有一个数组:

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

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

首先,有一点术语:那不是数组,而是对象。

既然这已经不成问题了,我不能确定你在要求什么。你在找这个吗

for( var i in assArray) {
    alert(i+": "+assArray[i]);
    // bad example, do something useful here
}

您可以使用以下内容

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返回一个数组,该数组的元素是对应的字符串直接在对象上找到的可枚举属性。订单的属性与在手动设置对象的属性。

这里基本上有一组"key"value"对。您没有一个包含0…n个索引的数组。要访问数据结构,您需要使用密钥("VeryImportantData1"、"VeryImportantDataTest"等)。

如何访问密钥/值的简单示例:

alert(assArray['Dumdum'])//这将提醒"VeryImportant"

console.log(assArray['Vey'])//这将记录"VeryImportant"

您可以使用以下内容

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;
    }
}

注意:排序参数是可选的。(由于关联数组(对象)的键作为散列存储在内部,因此它们以明显随机的顺序返回。请注意,没有任何排序函数作为参数的Array.sort()总是按递增顺序执行字符串比较。由于任何值类型都可以转换为有意义的字符串表示,因此这也是一个合理的默认值。)

// 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];
    }
}