简体   繁体   English

在数组中查找匹配的对象位置

[英]Find matching object position in array

Following Problem:以下问题:

I have a Array:我有一个数组:

var klassen = new Array();

klassen[0] = new Object();
klassen[0]["class"] = "barbarian";
klassen[0]["con"] = "0";
klassen[0]["str"] = "0";

klassen[1] = new Object();
klassen[1]["class"] = "bard";
klassen[1]["chr"] = "0";
klassen[1]["dex"] = "0"; '''

And i have a function:我有一个功能:

function changecs(){
    let csclass = document.getElementById("class")
    window.finden = csclass.value;
    alert(finden);

    highlight();
}
function highlight(){
    alert(finden);
    let indexzahl = klassen.indexOf('finden')
    alert (indexzahl);
}

This function is linked to a Html select ( i included the necessary:这个函数链接到一个 Html 选择(我包括了必要的:

 <div id="class-frm">
        <label for="class">Choose a Class</label>
            <select id="class" onchange="changecs()">
                <option id="default" value="default"> Optional </option>
                <option id="barbarian" value="barbarian"> Barbarian </option>
                <option id="bard" value="bard"> Bard </option>

My goal is it, to select something for example bard.我的目标是,选择一些东西,例如吟游诗人。 Then i want to know the index number of "bard" which would be 1 in this example.然后我想知道“吟游诗人”的索引号,在本例中为 1。 I hope this is precise enough.我希望这足够精确。 Thanks!谢谢!

for(let i=0; i<klassen.length; i++){
    const element = klassen[i];
    const keys = Object.keys(element);
    keys.forEach(key => {
        if(element[key] === 'bard'){
            console.log(klassen.indexOf(element))
        }
    });
    // you can use a flag and break here
}

Use Array.prototype.fineIndex() :使用Array.prototype.fineIndex()

 const klassen = [{'class': 'barbarian', con: 0, str: 0}, {'class': 'bard', chr: 0, dex: 0}] function changecs({target:{value}}){ const itemPosition = klassen.findIndex(item => item.class == value) console.log(itemPosition) }
 <label for="class">Choose a Class</label> <select id="class" onchange="changecs(event)"> <option id="default" value="default"> Optional </option> <option id="barbarian" value="barbarian"> Barbarian </option> <option id="bard" value="bard"> Bard </option> </select>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM