在JavaScript或EJS中获取两个数组元素位置的实现方法
针对双数组的位置获取函数实现(JavaScript/EJS)
我猜你需要的是能根据需求获取两个数组对应元素位置的工具函数,比如根据ID找它在数组里的所有出现位置,或者拿到位置对应的另一数组的值?下面我用JavaScript写几个实用的函数,同时也会说明在EJS模板里怎么用~
首先先把你的数组定义好(方便测试):
const idTotales = [76,76,76,78,17,37,30,177,30,177,1,2,3,5,64,30,31,35,36,17,17,37,76,1,2,3,5,35,37,33,30,31,35,36,17,17,37,17,37,35,37,80,35,37,1,2,3,5,1,2,3,5,1,2,3,5,81,76,30,31,35,36,17,1,2,3,5,81,0,76,64,61,21,22,18,24,19,26,35,37,17,37,17,37,17,37]; const porcantesTotales = [70,70,100,100,70,70,85,60,100,100,66.7,100,100,50,100,70,80,70,50,90,90,40,100,66.7,100,100,50,70,90,60,30,90,60,50,60,80,40,60,60,40,60,11.1,80,80,66.7,100,100,50,66.7,100,100,50,/* 你省略的部分 */];
1. 根据ID获取所有对应位置及百分比
这个函数可以帮你找到某个ID在idTotales里的所有出现位置,同时返回对应的百分比数据:
function getPositionsById(targetId) { const results = []; idTotales.forEach((id, index) => { if (id === targetId) { results.push({ position: index, porcante: porcantesTotales[index] }); } }); return results; } // 使用示例:找ID为76的所有位置和对应百分比 const id76Positions = getPositionsById(76); console.log(id76Positions); // 输出会是类似 [{position:0, porcante:70}, {position:1, porcante:70}, ...]
2. 根据百分比条件筛选位置及对应ID
如果需要找满足某个百分比条件的位置和ID,可以用这个函数:
function getPositionsByPorcanteCondition(conditionFn) { const results = []; porcantesTotales.forEach((porcante, index) => { if (conditionFn(porcante)) { results.push({ position: index, id: idTotales[index], porcante: porcante }); } }); return results; } // 使用示例:找百分比大于80的所有数据 const highPorcantePositions = getPositionsByPorcanteCondition(p => p > 80); console.log(highPorcantePositions);
3. 在EJS模板中获取位置(遍历场景)
如果你是在EJS模板里需要遍历数组并拿到元素位置,可以直接用EJS的内置循环变量<%= index %>:
<% idTotales.forEach((id, index) => { %> <div> 位置:<%= index %>,ID:<%= id %>,百分比:<%= porcantesTotales[index] %> </div> <% }) %>
这样不管是纯JS逻辑处理,还是在EJS模板里渲染,都能轻松获取到两个数组元素的对应位置啦~
内容的提问来源于stack exchange,提问作者Camilo Andres
相关产品推荐
相关产品推荐

