【发布时间】:2022-01-22 22:25:08
【问题描述】:
我有一个像这样的每月 html 日历表:
<table id="a">
<tr><td>31</td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr>
<tr><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td></tr>
<tr><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr>
<tr><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td></tr>
<tr><td>28</td><td>29</td><td>30</td><td>31</td><td>1</td><td>2</td><td>3</td></tr>
</table>
我需要一个功能解决方案来删除从底部到“7”的行,基本上只留下第一周。我的方法是将集合转换为数组,找到导致deleterow(-1) 的数量在活动表上运行的行索引。
const ta = [...document.querySelectorAll('table#a>*>tr')]
.map(row => [...row.querySelectorAll('td,th')]
.map(cell => cell.innerText) );
输出一个多维数组,然后可以循环...
for (let i = 0; i < ta.length; i++) {
if(ta[i].some(e => e === '7')) console.log(ta.length-i);
};
// 4
但是链接.some(e => e === '7') 总是返回false。我希望添加类似.some(function (elem, i) {return elem === '7' && ~(index = i); 的内容来获取找到它的行的索引。
有没有一种功能齐全的方法来实现这一点?
【问题讨论】:
-
为什么不遍历行...然后遍历每一行中的单元格,直到找到您想要的那个?
标签: javascript multidimensional-array functional-programming