Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据分组到单独的列表中_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 将数据分组到单独的列表中

Javascript 将数据分组到单独的列表中,javascript,jquery,arrays,Javascript,Jquery,Arrays,所以我现在遇到了一个逻辑上的难题。这就是我试图解决的问题 问题 我正在读取一个PDB文件,当它通过该文件时,它会创建一个文件中所有链的列表。这个列表看起来像这样 chainIdList = [A, E, D, F, G, H]; 长度可以变化 我还有一个列表,列出了序列中每个剩余部分的所有chainID。数据是我制作的一个字典,看起来像这样 chainResidue = {"chainId" : chainId, "residueNumber" : residueNumber} chainR

所以我现在遇到了一个逻辑上的难题。这就是我试图解决的问题

问题

我正在读取一个PDB文件,当它通过该文件时,它会创建一个文件中所有链的列表。这个列表看起来像这样

 chainIdList = [A, E, D, F, G, H];
长度可以变化

我还有一个列表,列出了序列中每个剩余部分的所有chainID。数据是我制作的一个字典,看起来像这样

chainResidue = {"chainId" : chainId, "residueNumber" : residueNumber}
chainResidue = { "A", "4"} 
所以我想做的是遍历chainresidence列表并检查chainresidence.chainId是否在chainList中。如果是,则创建一个匹配的chainId的新列表,然后将所有剩余编号附加到该列表中

这有意义吗

所以最后看起来

A = [ 4, 6, 7, 8, ... and so on];
E = [ 9, 10];
到目前为止的代码

for (var i = 0; i < chainResidue.length; ++i) {
    for (var j = 0; j < chainList.length; ++j) {
        if (chainResidue[i].chainId === chainList[j]) {
           //Append value of the chainResidue[i].residueName into chainList[j] make a list of lists?
        }
    }
 }

我只是把“Y”和数字拉进去,它是对应于它的数字,比如17和18

您可以使用以下ES6脚本:

//示例数据
var chaineidlist=['A','E','D','F','G','H'];
var链剩余=[
{“chainId”:“A”,“resideNumber”:24},
{“chainId”:“E”,“resideNumber”:18},
{“chainId”:“A”,“resideNumber”:9},
{“chainId”:“A”,“resideNumber”:15}
];
//创建以每个字母开头的空列表
var chaineidobj=chaineidlist.reduce((obj,id)=>(obj[id]=[],obj),{});
//用剩余数填充这些列表
var result=chainresidence.reduce((res,obj)=>(res[obj.chainId]?res[obj.chainId]。push(obj.residenceNumber):0,res),chainIdObj);

控制台日志(结果)您可以使用以下ES6脚本:

//示例数据
var chaineidlist=['A','E','D','F','G','H'];
var链剩余=[
{“chainId”:“A”,“resideNumber”:24},
{“chainId”:“E”,“resideNumber”:18},
{“chainId”:“A”,“resideNumber”:9},
{“chainId”:“A”,“resideNumber”:15}
];
//创建以每个字母开头的空列表
var chaineidobj=chaineidlist.reduce((obj,id)=>(obj[id]=[],obj),{});
//用剩余数填充这些列表
var result=chainresidence.reduce((res,obj)=>(res[obj.chainId]?res[obj.chainId]。push(obj.residenceNumber):0,res),chainIdObj);

控制台日志(结果)虽然您已经有了答案,但我建议不要使用,因为它总是返回相同的对象,而不是必需的

//示例数据
var chaineidlist=['A','E','D','F','G','H'],
chainResidence=[{chainId:“A”,resideNumber:24},{chainId:“E”,resideNumber:18},{chainId:“A”,resideNumber:9},{chainId:“A”,resideNumber:15}],
结果=Object.create(空);
forEach(a=>result[a]=[]);
forEach(a=>result[a.chainId]&&result[a.chainId].push(a.residenumber));

控制台日志(结果)虽然您已经有了答案,但我建议不要使用,因为它总是返回相同的对象,而不是必需的

//示例数据
var chaineidlist=['A','E','D','F','G','H'],
chainResidence=[{chainId:“A”,resideNumber:24},{chainId:“E”,resideNumber:18},{chainId:“A”,resideNumber:9},{chainId:“A”,resideNumber:15}],
结果=Object.create(空);
forEach(a=>result[a]=[]);
forEach(a=>result[a.chainId]&&result[a.chainId].push(a.residenumber));

控制台日志(结果)请添加一些示例数据。@NinaScholz有帮助吗?没有,没有。我对chainIdleist和chainResumination与有效数据感兴趣。
A
E
的结果集是什么?请添加一些示例数据。@NinaScholz有帮助吗?不,没有。我对chainIdleist和chainResumination与有效数据感兴趣。
A
E
的结果集是什么?天哪,真管用!!!你能再给我解释一下代码吗?我真的很想知道这是怎么在我刚才的回答中添加了一个解释的。天哪,这是有效的!!!你能再给我解释一下代码吗?我真的很想知道这是如何在我刚才的回答中添加解释的。
ATOM   3434  CA  LEU Y  17      -3.567   5.653  33.836  1.00 28.21           C  
ATOM   3435  C   LEU Y  17      -3.114   6.290  32.530  1.00 31.33           C  
ATOM   3436  O   LEU Y  17      -2.020   6.873  32.474  1.00 26.01           O  
ATOM   3437  CB  LEU Y  17      -2.620   4.575  34.233  1.00 29.46           C  
ATOM   3438  CG  LEU Y  17      -2.610   4.263  35.705  1.00 33.42           C  
ATOM   3439  CD1 LEU Y  17      -1.430   3.363  35.960  1.00 40.68           C  
ATOM   3440  CD2 LEU Y  17      -2.351   5.483  36.559  1.00 40.12           C  
ATOM   3441  N   ASP Y  18      -3.926   6.263  31.454  1.00 30.62           N  
ATOM   3442  CA  ASP Y  18      -3.487   6.866  30.205  1.00 31.46           C