Typescript Array按索引查找元素

Exe*_*c21 11 typescript2.0 angular

查找并分配具有categoryId的CategoryApi对象

export class CategoryApi {
    categoryId: number;
    name: string;
}

categories: CategoryApi[];
selectedCategory: CategoryApi;

selectedCategory = categories.findByIndex(2); //looking for categoryApi by categoryId = 2
Run Code Online (Sandbox Code Playgroud)

我发现这个javascript选项但是Typescript抱怨功能

var inventory = [
    {name: 'apples', quantity: 2},
    {name: 'bananas', quantity: 0},
    {name: 'cherries', quantity: 5}
];

function findCherries(fruit) { 
    return fruit.name === 'cherries';
}

console.log(inventory.find(findCherries)); // { name: 'cherries', quantity: 5 }
Run Code Online (Sandbox Code Playgroud)

Baz*_*nga 21

在JS中没有这样的方法findByIndex,唯一的方法是findIndex.

您可以使用filterfind方法按索引获取项目:

// ES2015

selectedCategory = categories.find(item => item.categoryId === 1);
Run Code Online (Sandbox Code Playgroud)

// ES5

selectedCategory = categories.filter(item => item.categoryId === 1)[0];
Run Code Online (Sandbox Code Playgroud)