我有订单和产品型号.
"Order"HasMany产品(和产品属于订单)......
假设我想显示订单的3个产品,怎么做?
我知道第一个可以检索$order->products->first()...但是如何检索第二个和第三个产品?
我试过,$order->products->find(1)但"1"代表产品的ID ......我不想知道......
假设我们有一个对象数组,例如:
var fruits = [ {name:"banana", weight:150},{name:"apple", weight:95},{name:"orange", weight:160},{name:"kiwi", weight:80} ];
Run Code Online (Sandbox Code Playgroud)
我想用重量大于 100 的“fruits”数组中的项目填充“heavy_fruits”数组。这是我的代码:
var heavy_fruits = [];
myfruit = {};
fruits.forEach(function(item,index) {
if ( item.weight > 100 ) {
myfruit ["name"] = item.name;
myfruit ["weight"] = item.weight;
}
heavy_fruits.push(myfruit);
});
Run Code Online (Sandbox Code Playgroud)
但是它显示:名称:“橙色”,重量:160 名称:“橙色”,重量:160 名称:“橙色”,重量:160 名称:“橙色”,重量:160
我知道这是混合闭包和循环的问题......但我读了一篇文章(http://zsoltfabok.com/blog/2012/08/javascript-foreach/)解释说我会使用forEach 循环而不是经典的 for 循环。
我知道我可以使用 filter() 等数组方法,但我是故意这么问的,因为我实际上遇到了无法在此处公开的更大函数的麻烦......所以我试图总结和简化我的问题描述为“水果”。
假设我们有一系列对象,例如:
var fruits = [ {name:"banana", weight:150},{name:"apple", weight:130},{name:"orange", weight:160},{name:"kiwi", weight:80} ]
Run Code Online (Sandbox Code Playgroud)
我想迭代水果,并告诉每一次当前,前一个和下一个水果的名称.我会做的事情如下:
fruits.forEach(function(item,index) {
console.log("Current: " + item.name);
console.log("Previous: " + item[index-1].name);
console.log("Next: " + item[index-1].name);
});
Run Code Online (Sandbox Code Playgroud)
但显然它不适用于下一个和之前的项目......任何想法?
请注意,我不想使用经典的for循环
(对于i = 0; i
非常感谢!