javascript 从一组数据中找到指定的单条数据的方法 by FungLeo

从一组数据中找到指定的单条数据的方法

在一般情况下,我们会要求后端在列表的时候输出一堆列表的JSON数据给我们,然后我们把这堆数据循环,就能在前端上显示列表了.

而我们在内容页的时候,则要求输出一个内容页的JSON数据给我们,我们就可以做内容页了.

但是,有时候,数据并不是特别复杂,我们可能需要从列表的数据中指定其中的单条数据.怎么做呢?

标准答案,find方法

var json = [{"id":1,"name":"张三"},{"id":2,"name":"李四"},{"id":3,"name":"王五"}];

如上所示,json是一个典型的列表数据.我如何指定找到ID=1的这条数据呢?

var data = json.find(function(e){return e.id == 1});
console.log(data);

通过这样的回调函数,就能找到列表数据中的单条数据了.

这段代码用了一个find方法,并且使用了一个回调函数.很优雅的解决了这个问题.下面,我将给出我的原始方案.

我的方案,for循环

上面的find方法是我通过搜索引擎找到的解决方法,点击此处: Array.prototype.find() .而我的原始解决方案如下:

var json = [{"id":1,"name":"张三"},{"id":2,"name":"李四"},{"id":3,"name":"王五"}];
var data = getJsonById(2,json);
function getJsonById(id,data){
    for (var i = 0; i < data.length; i++) {
        if (data[i].id==id) {
            return data[i];
        }
    };
}

原理非常简单.通过循环遍历,找到和条件一致的内容,然后返回它即可.

在实际的项目运用中,还是用标准答案比较好.但是,我的方案可能更加有助于你学习理解这段内容哦!

本文由FungLeo原创,允许转载.但转载必须署名作者,并保留文章首发链接.否则将追究法律责任.

首发地址:http://blog.csdn.net/FungLeo/article/details/51555510

时间: 2024-10-13 07:27:57

javascript 从一组数据中找到指定的单条数据的方法 by FungLeo的相关文章

升序数据中找到二元组为固定之和

1:题目描述 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 示例 1: 输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2: 输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10] 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/he-

javascript 判断数组中的重复内容的两种方法 by FungLeo

javascript 判断数组中的重复内容的两种方法 by FungLeo 前言 一般,我们可能会给数组去重,这个操作并不复杂,执行一个循环就是了.现在,我要做的是,判断数组中是否有重复的内容,如果有,返回 true 否则,返回 false. 思路 把数组变成字符串 循环原数组,拿每一个字段和这个字符串进行比对,看是否有重复 如何拿A字符串和B字符串进行对比,并且要求判断出B字符串中包含过个A字符串呢? 方法一 indexOf() 和 lastIndexOf() 对比法. 首先,我们构建代码:

MySQL为数据表的指定字段插入数据

username not null 没有默认值/有默认值   insert不插入username字段 均不报错 2014年07月23日21:05    百科369 MySQL为数据表的指定字段插入数据 为数据表的指定字段插入数据,就是在INSERT语句中只向部分字段中插入值,而其它字段的值为数据表定义时的默认值. 基本的语法格式如下: INSERT INTO 表名(字段1,字段2,...,字段m) VALUES(值1,值2,...,值m); 字段1,字段2,...,字段m:表示数据表中的字段名称

如何去除AJAX收到数据中包含的html页面数据

问题: 如下代码所示,我用AJAX收到来自url: 'kzkj_check.jsp',返回的数据msg,总是包含页面的html数据,可是我只想要我返回的数据“false”, $.ajax({ url: 'kzkj_check.jsp', async:false, data: 'un='+ $('#userName').val() +'&pw=' + $('#passWord').val(), type: "get", success: function(msg){ if(msg

查看Oracle表中的指定记录在数据文件中的位置

查看Oracle表中的指定记录位置select rowid,user_id from sshr.xx_user where user_id=3010586 select rowid,       dbms_rowid.rowid_object(rowid) object_id,              dbms_rowid.rowid_relative_fno(rowid) file_id,              dbms_rowid.rowid_block_number(rowid) b

在文件中的指定位置写入数据

笔者的应用场景:将图像指定区域的像素值按其空间位置写到 txt 文件中. int hang = 4; // 矩阵行数 int lie = 8; // 矩阵列数 // 先在txt文件中构造一个空矩阵,然后向该矩阵中指定行列写入个位数 int main10() { FILE *filp = fopen("cc.txt", "w+"); for (int i = 0; i < hang; i++) { fseek(filp, lie, SEEK_END); fpri

从密码文件中取得指定uid的数据

使用getpwuid()函数 #include <stdio.h> #include <pwd.h> #include <sys/types.h> main() { struct passwd *user; user = getpwuid(1); printf("name :%s\n",user->pw_name); printf("uid: %d\n",user->pw_uid); printf("home

但是,在通过移动数组的上升周期中找到指定元素

该阵列是按升序排列,通过循环数组后动.肯定是有左半或半或升序的一部分. 代码: public class SearchRotateArray { public static int search(int a[], int l, int u, int x) { while(l<=u){ int m = (l+u)/2; if(x==a[m]){ return m; }else if(a[l]<=a[m]){ //左半部分升序排列 if(x>a[m]){ l=m+1; }else if(x&

把请求的数据(数组和和单条数据)存放到Model中

#import <Foundation/Foundation.h> @interface VideoPinglunModel : NSObject @property (nonatomic , assign)NSInteger commentUserid; @property (nonatomic , assign)NSInteger commentCtime; @property (nonatomic , copy)NSString *commentContent; @property (n