Javascript 通过属性(如通过索引)访问数组对象

Javascript 通过属性(如通过索引)访问数组对象,javascript,Javascript,我有个问题。 我有一个objectc类产品数组。 是否可以通过其属性访问数组中的specyfic对象。喜欢在数组中使用[index]吗?大概是这样的: PRODUCTS[PRODUCTS.product_name=uniquename].data.detail[detail.id = id].ov = parseInt(changeSignal.value); var products = [{ id: 1, block: "b1", product_name: "p1" }, {

我有个问题。 我有一个objectc类产品数组。 是否可以通过其属性访问数组中的specyfic对象。喜欢在数组中使用[index]吗?大概是这样的:

PRODUCTS[PRODUCTS.product_name=uniquename].data.detail[detail.id = id].ov = parseInt(changeSignal.value);
var products = [{
    id: 1, block: "b1", product_name: "p1"
}, {
    id: 2, block: "b2", product_name: "p2"
}, {
    id: 3, block: "b3", product_name: "p3"
}];
这是产品。它是产品对象的集合和数组:

PRODUCTS: Product[] =[];
这是我们班的产品

class Product {
  id:number;
  block: string;
  czas: string;
  data: ProductData
  product_name:string;
}

我不熟悉你的语法,但下划线可以帮你。例如:

   var list = [
        {name: "darin", age: 10},
        {name: "cody", age: 30},
        {name: "dave", age: 40},        
    ]

    var result = _.findWhere(list, {"name": "cody"}) ;

我不熟悉你的语法,但下划线可以帮你。例如:

   var list = [
        {name: "darin", age: 10},
        {name: "cody", age: 30},
        {name: "dave", age: 40},        
    ]

    var result = _.findWhere(list, {"name": "cody"}) ;

如果您有这样的对象和数组:

PRODUCTS[PRODUCTS.product_name=uniquename].data.detail[detail.id = id].ov = parseInt(changeSignal.value);
var products = [{
    id: 1, block: "b1", product_name: "p1"
}, {
    id: 2, block: "b2", product_name: "p2"
}, {
    id: 3, block: "b3", product_name: "p3"
}];
你想得到
product\u name
p3
的对象,你需要在数组中循环。为此,您可以像这样使用数组函数
过滤器

PRODUCTS[PRODUCTS.product_name=uniquename].data.detail[detail.id = id].ov = parseInt(changeSignal.value);
var products = [{
    id: 1, block: "b1", product_name: "p1"
}, {
    id: 2, block: "b2", product_name: "p2"
}, {
    id: 3, block: "b3", product_name: "p3"
}];
//产品列表
var乘积=[{
id:1,区块:“b1”,产品名称:“p1”
}, {
id:2,区块:“b2”,产品名称:“p2”
}, {
id:3,块:“b3”,产品名称:“p3”
}];
//按产品名称查找产品
var prod=产品.过滤器(函数(p){
返回p.product_name==“p3”;
});

控制台信息(prod)如果您有这样的对象和数组:

PRODUCTS[PRODUCTS.product_name=uniquename].data.detail[detail.id = id].ov = parseInt(changeSignal.value);
var products = [{
    id: 1, block: "b1", product_name: "p1"
}, {
    id: 2, block: "b2", product_name: "p2"
}, {
    id: 3, block: "b3", product_name: "p3"
}];
你想得到
product\u name
p3
的对象,你需要在数组中循环。为此,您可以像这样使用数组函数
过滤器

PRODUCTS[PRODUCTS.product_name=uniquename].data.detail[detail.id = id].ov = parseInt(changeSignal.value);
var products = [{
    id: 1, block: "b1", product_name: "p1"
}, {
    id: 2, block: "b2", product_name: "p2"
}, {
    id: 3, block: "b3", product_name: "p3"
}];
//产品列表
var乘积=[{
id:1,区块:“b1”,产品名称:“p1”
}, {
id:2,区块:“b2”,产品名称:“p2”
}, {
id:3,块:“b3”,产品名称:“p3”
}];
//按产品名称查找产品
var prod=产品.过滤器(函数(p){
返回p.product_name==“p3”;
});

控制台信息(prod)简短的回答不像您正在尝试的那样。JavaScript不支持带有命名索引的数组(关联数组)。在JavaScript中,数组总是使用编号索引,因此方括号内的任何表达式都必须解析为整数。xxxmatco的答案给出了一个很好的例子,说明了如何通过数组索引和随后的点表示法访问属性。

简短的答案不像您正在尝试的那样。JavaScript不支持带有命名索引的数组(关联数组)。在JavaScript中,数组总是使用编号索引,因此方括号内的任何表达式都必须解析为整数。xxxmatco的回答提供了一个很好的示例,说明了如何通过数组索引和随后的点表示法访问属性。

PRODUCTS.product\u name=uniquename
??/@up I编辑问题什么是产品?它是如何定义的?也许您应该使用对象而不是数组?将数据结构从数组更改为一个对象,其中键将是唯一的产品ID
PRODUCTS。product_name=uniquename
??/@up我编辑问题什么是产品?它是如何定义的?也许您应该使用对象而不是数组?将您的数据结构从数组更改为一个对象,其中键将是唯一的产品ID“在JavaScript中,数组总是使用编号索引”。。。不完全正确-您可以在JS中使用数组['index']、数组['tag']等,但您需要首先自己定义命名参数。'在JavaScript中,数组始终使用编号索引'。。。不完全正确-您可以在JS中使用数组['index']、数组['tag']等,但您需要首先自己定义命名参数。