javascript - 停止 filter(),这可能吗?

标签 javascript arrays object filter

我有这样的代码:

        return Object.keys(items).filter((item, index) => {
        if(index <= this.state.limit)
            return item

        if(index > this.state.limit)
            break? continue to the maping? how?
    }).map( (item, index) => {
        return(
            <div key={index}>
                {item.title}
            </div>
        )
    })

我怎样才能退出过滤器并转到映射而不是循环遍历所有项目。是否可以?我试过中断并继续但没有成功。

object keys 中的数组(items)是一个带有一堆 props 的对象,大约 500 万)

const items = {
    title2: 'bird',
    title3: 'apple,
    title4 ....
}

我基本上需要根据 this.state.limit

返回对象中 前 N Prop 的数量

最佳答案

你可以使用 slice代替 filter 来限制数组长度

return Object.values(items)
             .slice(0, this.state.limit + 1)
             .map( (item, index) => {
               return (
                 <div key={index}>
                  {item.title}
                 </div>
               )
             })

但是您应该记住,不能保证对象中属性的顺序。

关于javascript - 停止 filter(),这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46034388/

相关文章:

JavaScript 符号类型 : (non-string object keys)

javascript - 筛选对象数组并返回满足所有给定条件的对象

javascript - 使用 Jest 和 Webpack 别名进行测试

javascript - 使用 chrome.cookies 扩展响应 cookie 和 2 个异步 xmlhttp 请求

javascript - 为什么在包含字符串的数组上运行 jquery each() 会将每个字符串分解为单个字符的数组?

javascript - 过滤对象数组的性能

javascript - AngularJS:使用列表项作为单独列表的变量

javascript - Redux:用于存储博客列表的数组或对象?

ruby-on-rails - Ruby/Rails 字符串数组到 PostgreSQL 插入

javascript - 绑定(bind)到过滤对象属性剔除嵌套 foreach