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

时间:2013-12-08 02:02:19

标签: javascript jquery

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

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}我希望这是有道理的

3 个答案:

答案 0 :(得分:1)

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} 

答案 1 :(得分:1)

JavaScript的property accessors无法查看Object所持有的Array来对其应用条件。

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

var filtered = array.filter(function (item) {
    return item.index === "8";
});

console.log(filtered[0]); // Object {index: "8", value: 0}

您还可以使用for loopif test来查找它。

答案 2 :(得分: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的对象,则需要使用循环顺序扫描数组,而不是编写一些伪查询语言。