Javascript 读取Json数据并在angular component中使用
我正在处理一个角度应用程序。我必须从json读取数据,并分两部分进行处理Javascript 读取Json数据并在angular component中使用,javascript,node.js,angular,typescript,angular8,Javascript,Node.js,Angular,Typescript,Angular8,我正在处理一个角度应用程序。我必须从json读取数据,并分两部分进行处理 使用express从json读取数据:我有以下按字母顺序排序的json { “1”:“安迪”, “2”:“比利” “3”:“携带” “4”:“多达” } 左手边是身份证,右手边是姓名。我必须用express读取这些数据,并在角度分量中访问这些数据 在我的角度分量中,我有另一个数组,它也被排序。该数组如下所示: [ { "Name": "Andy",
[
{
"Name": "Andy",
"Id": "1"
"IncomingTime": "2020-06-19T11:02+00:00",
"Outgoingtime": "2020-06-19T11:07+00:00"
},
{
"Name": "Billy",
"Id": "2"
"IncomingTime": "2020-06-19T11:05+00:00",
"Outgoingtime": "2020-06-19T11:17+00:00"
},
{
"Name": "Ciena",
"Id": 5
"IncomingTime": "2020-06-19T11:05+00:00",
"Outgoingtime": "2020-06-19T11:07+00:00"
},
{
"Name": "Doda",
"Id": "4"
"IncomingTime": "2020-06-19T11:05+00:00",
"Outgoingtime": "2020-06-19T11:07+00:00"
}
]
一旦上述Json数据在组件中可用(第1点中的Json),我就必须创建一个新数组(或任何可以排序的数据结构)。在这个新数组中,我必须以这样一种方式放置数据,即来自上面Json的按字母顺序排序的“Name”应该与排序数组中的数据相匹配。若名称匹配,则内容(名称、id、收入时间、支出时间)将复制到该特定“名称”的新数组中,该“名称”也将被排序。假设在比较名称时,我们遇到了一个在排序数组中没有数据的名称,那么我们只需要在新数组中保留名称,而不管数据是否存在。和上面的数据一样,“进位”数据在排序数组中不存在,但在最终数组中“进位”应该存在。我该怎么做呢?你可以用Lodash来做。Lodash提供了实现您想要的功能。文件是 从中安装Lodash 从“Lodash”导入Lodash
import*as代码>
我想这就是你想要的
const arr = { 1: 'Andy', 2: 'Billy', 3: 'Carry', 4: 'Doda' };
const data = [
{
"Name": "Andy",
"Id": "1",
"IncomingTime": "2020-06-19T11:02+00:00",
"Outgoingtime": "2020-06-19T11:07+00:00"
},
{
"Name": "Billy",
"Id": "2",
"IncomingTime": "2020-06-19T11:05+00:00",
"Outgoingtime": "2020-06-19T11:17+00:00"
},
{
"Name": "Ciena",
"Id": 5,
"IncomingTime": "2020-06-19T11:05+00:00",
"Outgoingtime": "2020-06-19T11:07+00:00"
},
{
"Name": "Doda",
"Id": "4",
"IncomingTime": "2020-06-19T11:05+00:00",
"Outgoingtime": "2020-06-19T11:07+00:00"
}
];
const newArray = _.map(arr, item => {
const value = _.find(data, ['Name', item]);
const obj = value ? value : {Name: item};
return obj;
});
console.log(newArray);
检查我的回答贴图功能用于创建新对象。我将'arr'传递给map函数,该函数将迭代'arr'中的每个值。查找用于检查“数据”中是否存在“项”。如果不存在,则该值未定义,因此我将为“obj”else值分配一个新对象。您可以在映射函数中添加断点以检查是否正常工作。它正常工作,但不符合预期,因为当我第一次向组件发送数据时,这段代码给出了正确的结果,但当我在不刷新的情况下发送seconf time数据时,它会保留以前的数据并附加新的数据。这就是问题所在。当您第二次发送数据时,空的newArray=[]如下所示。