Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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 Vuejs-检查模板中显示的不同列表的两个数据是否相同_Javascript_Vue.js_Vuejs2 - Fatal编程技术网

Javascript Vuejs-检查模板中显示的不同列表的两个数据是否相同

Javascript Vuejs-检查模板中显示的不同列表的两个数据是否相同,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我想与数据列表进行比较(一个是从服务器获取的,另一个是从默认数据获取的) 来自服务器的数据: [ { "id": 7, "day": "14 April 2017", "time_list": [ { "id": 25, "time": "11:00 AM", }, { "id": 28, "time": "08:00 PM", } ] },

我想与数据列表进行比较(一个是从服务器获取的,另一个是从默认数据获取的)

来自服务器的数据:

[
  {
    "id": 7,
    "day": "14 April 2017",
    "time_list": [
      {
        "id": 25,
        "time": "11:00 AM",
      },
      {
        "id": 28,
        "time": "08:00 PM",
      }
    ]
  },
  {
    "id": 7,
    "day": "13 April 2017",
    "time_list": [
      {
        "id": 33,
        "time": "11:00 AM",
      },
      {
        "id": 22,
        "time": "02:00 PM",
      },
    ]
  },
]
前端javascript Vue组件的默认数据:

default_time_data: ["11:00 AM", "02:00 Pm", "05:00 PM", "08:00 PM"]
我想做的是在模板中:

<template>
    <div v-for="day in show_routine_data">

        check if the time from the day.time_list is same as the showTime_count

        For each default_time of default_time_data, check if any of the time of day.time_list is equal to the default_time.

        If the default_time is equal to the time, then show its id.
        Else, show no data
    </div>
</template>

检查day.time\u列表中的时间是否与showTime\u计数相同
对于默认时间数据的每个默认时间,检查一天中的任何时间.time\u列表是否等于默认时间。
如果默认_时间等于时间,则显示其id。
否则,不显示任何数据
我希望我是清楚的,如果没有请一定要问。为了解决这个问题,我从今天早上就开始挠头了。你能帮帮我吗

更新:

我希望最终数据显示如下(根据上述数据):

  • 2017年4月14日

    • 二十五

    • 没有数据

    • 没有数据

    • 二十八

      • 2017年4月13日

        • 三十三

        • 二十二

        • 没有数据

        • 没有数据


基本上,您需要创建一个
计算属性
,在该属性中收集准备渲染的数据。有关计算属性的文档:

如果您需要提取一段数据、以某种方式对其进行格式化等,那么Computed属性就是一种方法

您还需要两个
v-for
循环:一个循环通过块,另一个嵌套的循环通过时间ID

下面是一个例子:

newvue({
el:“#应用程序”,
数据:{
迈亚尔:[
{
“id”:7,
“日期”:“2017年4月14日”,
“时间列表”:[
{
“id”:25,
“时间”:“上午11:00”,
},
{
“id”:28,
“时间”:“晚上8:00”,
}
]
},
{
“id”:7,
“日期”:“2017年4月13日”,
“时间列表”:[
{
“id”:33,
“时间”:“上午11:00”,
},
{
“id”:22,
“时间”:“下午2:00”,
},
]
},
], 
默认时间数据:[“上午11:00”、“下午02:00”、“下午05:00”、“下午08:00”]
},
计算:{
dataToRender:函数(){
返回(this.myArr&&this.myArr.length>0)//如果已获取数据
?this.myArr.map(e=>Object.assign({day:e.day}),
{ 
时间列表:这是默认的时间数据
//如果时间在默认数组中-返回id,否则为“无数据”
.map(dt=>(e.time_list.map({time})=>time).includes(dt))?e.time_list.find(tl=>tl.time==dt).id:'No data')
}))
:[];//如果数据尚未到达-返回空数组
}
}
});

  • {{item.day}

    • {{time}

检查day.time\u列表中的时间是否与showTime\u计数相同
-什么是
showTime\u计数
?对于此数据,是否要输出ID 25、33、22?(上午11点和下午2点)@wostex你好。我已经更新了问题,你能看一下吗?
<ul>
    <li>
        <p>14th April 2017</p>
        <ul>
            <li><p> 25 </p></li>
            <li><p> No data </p></li>
            <li><p> No data </p></li>
            <li><p> 28 </p></li>
        <ul>
    <li>
    <li>
        <p>13th April 2017</p>
        <ul>
            <li><p> 33 </p></li>
            <li><p> 22 </p></li>
            <li><p> No data </p></li>
            <li><p> No data </p></li>
        <ul>
    <li>
</ul>