javascript - 限制 JSON 结果

标签 javascript jquery json linq

如果没有编写循环,最好的方法是什么,最好使用 jQuery 来限制 json 对象/数组的结果?

例如,如果我有:

var mydata = [
        {id:"1",invdate:"2010-05-24",name:"test",note:"note",tax:"10.00",total:"2111.00"} ,
        {id:"2",invdate:"2010-05-25",name:"test2",note:"note2",tax:"20.00",total:"320.00"},
        {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",tax:"30.00",total:"430.00"},
        {id:"4",invdate:"2007-10-04",name:"test",note:"note",tax:"10.00",total:"210.00"},
        {id:"5",invdate:"2007-10-05",name:"test2",note:"note2",tax:"20.00",total:"320.00"},
        {id:"6",invdate:"2007-09-06",name:"test3",note:"note3",tax:"30.00",total:"430.00"},
        {id:"7",invdate:"2007-10-04",name:"test",note:"note",tax:"10.00",total:"210.00"},
        {id:"8",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"21.00",total:"320.00"},
        {id:"9",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
        {id:"11",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"12",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"13",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
        {id:"14",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"15",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"16",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
        {id:"17",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"18",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"19",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
        {id:"21",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"22",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"23",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
        {id:"24",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"25",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"26",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
        {id:"27",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
        {id:"28",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
        {id:"29",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}
    ];

我如何才能获得前 5 个结果(ids 1、2、3、4 和 5)?这类似于 C#/Linq 的 .Take(5) 或 SQL 的 TOP(5) 方法。

我希望这里有一个通用的方法,这个示例 JSON 与我的实际应用无关。

谢谢!

最佳答案

好吧,他们已经排序了,所以就做...

var t5 = mydata.slice(0,5);

或者如果你确实需要对它们进行排序,你可以这样做......

var t5 = mydata.sort(function(a,b) { 
    return +a.id - +b.id; 
}).slice(0,5);

关于javascript - 限制 JSON 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8620729/

相关文章:

python - 无法使用 beautifulsoup 3 从 json 脚本中提取所有 URL

JavaScript 问题,摄氏到开尔文不工作

javascript - 在 Javascript ES6 中返回 JSON 对象

javascript - 相当于 Node.js 中的 laravel 风格的服务提供者(或 wp 风格的插件)

javascript - jQuery 计算 div 中的图像并根据 z-index 和 title attr 告诉我当前正在查看的图像

javascript - cufon 将如何支持阿拉伯语?

javascript - 如何将 <li> 标签包裹在 <ul> 标签内

javascript - 使用push()创建一个名称为变量的JSON对象?

json - Linux 从日志文件中剪切模式

javascript - 如何在 Angular 中获取数据模型的类名?