我正在尝试在我正在制作的angularjs应用程序中做的事情。我有一大堆电影演员,包括导演,制片人,电影摄制组等。我想制作一个新的导演组合。
我不知道如何用另一个数组中的特定对象填充新数组。 这是我的意思的一个简单例子:
this.products = [
{name: "apple", category: "fruit"},
{name: "iPhone", category: "tech"},
{name: "banana", category: "fruit"}
];
this.fruits = [];
for(i = 0; i < products.length; i++) {
if (products.category[i] == "fruit") {
/*code to add object to fruits array*/
}
}
请帮忙!谢谢!
答案 0 :(得分:1)
试试这个:
while(t1!=NULL)
{
count++;
t1=t1->ptr;
}
for(i=0;i<count;i++)
{
t1=START;
for(j=0;j<count-i-1;j++)
{
if(t1->info>(t1->ptr)->info)
{
int temp=t1->info;
t1->info=(t1->ptr)->info;
(t1->ptr)->info=temp;
}
t1=t1->ptr;
}
}
答案 1 :(得分:1)
尝试使用此代码可能对您有所帮助
this.products = [
{name: "apple", category: "fruit"},
{name: "iPhone", category: "tech"},
{name: "banana", category: "fruit"}
];
this.fruits = [];
for(i = 0; i < products.length; i++) {
if (products[i].category === "fruit") {
/*code to add object to fruits array*/
fruits.push(products[i].name);
}
}
console.log(fruits);
答案 2 :(得分:0)
使用filter
API:
this.fruits = this.products.filter(function(product) {
return product.category == 'fruits';
});
答案 3 :(得分:0)
您可以按照以下方式执行此操作:
this.fruits = this.products.filter(p => p.category == "fruit").map(p => p.name);
.filter()
方法仅采用具有正确类别的对象。然后.map()
遍历此结果,并仅使用name属性值替换对象,以便最终结果为["apple", "banana"]
。
如果您想要整个对象,那么当然您会遗漏.map()
部分。
演示:
new (function () {
this.products = [
{name: "apple", category: "fruit"},
{name: "iPhone", category: "tech"},
{name: "banana", category: "fruit"}
];
this.fruits = this.products.filter(p => p.category == "fruit").map(p => p.name);
document.write(this.fruits);
});