我有一个像这样的对象数组:
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}
现在如果不是使用对象数组的索引而是想通过它来访问它对象本身内的value
或index
。我尝试过几种不同的命令。
console.log(array["index: " + 8]
console.log(array["index:" == 8]
这些都没有做任何事情,除了为上面两个例子抛出未定义或错误我希望它们打印出来Object {index: "8", value: 0}
我希望这是有道理的
答案 0 :(得分:1)
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}
答案 2 :(得分:0)
此处与8
无关。这根本不是你如何处理JavaScript中的对象,因为即使是最基本的教程也会告诉你。
鉴于obj = {index: "4", value: -1}
,您可以使用obj.index
或obj.value
访问这两个值。你不能发明一些"index: == 8"
奇怪的东西,并期待理智的结果。
obj = {index: "4", value: -1}
console.log(obj.index) // 4
console.log(obj.value) // -1
如果要查找索引为8的对象,则需要使用循环顺序扫描数组,而不是编写一些伪查询语言。