bie*_*ier 5 javascript arrays lodash
我有一个这样的对象数组:
const books =[
{id: "1", name: "twilight", category: "Movies", price: 10},
{id: "2", name: "jaws", category: "Movies", price: 22},
{id: "3", name: "the shining", category: "Movies", price: 1},
{id: "4", name: "beers", category: "Movies", price: 10},
{id: "5", name: "apples", category: "Movies", price: 22},
{id: "6", name: "mono", category: "Movies", price: 1}
]
Run Code Online (Sandbox Code Playgroud)
尝试切片前2,然后第2 2等
我怎么能在当时切2本书呢?
slice() 方法将数组的一部分的浅拷贝返回到从开始到结束(不包括结束)选择的新数组对象中。原始数组不会被修改。
尝试for在每次迭代中增量为 2 的循环。将 的当前值i作为开始位置和结束i+2位置作为方法参数传递:
const books =[
{id: "1", name: "twilight", category: "Movies", price: 10},
{id: "2", name: "jaws", category: "Movies", price: 22},
{id: "3", name: "the shining", category: "Movies", price: 1},
{id: "4", name: "beers", category: "Movies", price: 10},
{id: "5", name: "apples", category: "Movies", price: 22},
{id: "6", name: "mono", category: "Movies", price: 1}
]
for(var i=0; i<books.length; i+=2){
var sliced = books.slice(i, i+2);
console.log(sliced);
}Run Code Online (Sandbox Code Playgroud)
由于您使用的是lodash,因此您可以使用_.chunk( lodash#chunk ) 填充包含前 2 个、然后是第二个 2 的数组,依此类推...
_.chunk(books, 2)
Run Code Online (Sandbox Code Playgroud)
这是一个工作示例:
_.chunk(books, 2)
Run Code Online (Sandbox Code Playgroud)
const books = [
{id: "1", name: "twilight", category: "Movies", price: 10},
{id: "2", name: "jaws", category: "Movies", price: 22},
{id: "3", name: "the shining", category: "Movies", price: 1},
{id: "4", name: "beers", category: "Movies", price: 10},
{id: "5", name: "apples", category: "Movies", price: 22},
{id: "6", name: "mono", category: "Movies", price: 1}
],
res = _.chunk(books, 2);
console.log(res);Run Code Online (Sandbox Code Playgroud)
现在,您已经有了分块数组,迭代并一项一项地获取您所需要的内容!