使用console.log在对象中显示值

using console.log to show value in object

本文关键字:显示 对象 console log 使用      更新时间:2024-05-19

我有一个像这样的对象数组:

Object {index: "4", value: -1} 
Object {index: "0", value: 0} 
Object {index: "6", value: 0} 
Object {index: "8", value: 0} 
Object {index: "1", value: 1} 
Object {index: "3", value: 1} 
Object {index: "5", value: 1} 
Object {index: "7", value: 1}

第一个数组的索引为0,我可以像console.log[array[0]一样访问它,这将给我Object {index: "4", value: -1},如果我不想使用对象数组的索引,而是想通过对象内部的valueindex来访问它,该怎么办。我尝试过几种不同的命令,比如。

console.log(array["index: " + 8]
console.log(array["index:" == 8]

除了为上面的两个例子抛出未定义的或错误之外,他们都没有做任何事情。我希望他们打印出Object {index: "8", value: 0}。我希望这对

有意义

JavaScript的属性访问器不能在Array所持有的Object中进行查找,以对其应用条件。

最接近的选择可能是.filter():

var filtered = array.filter(function (item) {
    return item.index === "8";
});
console.log(filtered[0]); // Object {index: "8", value: 0}

您也可以使用for循环和if测试来找到它。

fiddle Demo

function find_index(x) {
    var y = '';
    for (var i = 0; i < arr.length; i++) {
        if (arr[i].index == x) {
            y = arr[i];
            break;
        }
    }
    return y;
}
console.log(find_index(8)); //Object {index: "8", value: 0} 

此处与8无关。这根本不是在JavaScript中处理对象的方式,即使是最基本的教程也会向您展示这一点。

给定obj = {index: "4", value: -1},可以使用obj.indexobj.value访问这两个值。你不能发明一些"index: == 8"的怪异并期望得到理智的结果。

obj = {index: "4", value: -1}
console.log(obj.index) // 4
console.log(obj.value) // -1

如果你想找到一个索引为8的对象,那就需要用循环顺序扫描数组,而不是编写一些伪查询语言。