【发布时间】:2021-08-03 09:53:09
【问题描述】:
var array1 = [{issueCount: 16, failCount: 38, id: 1},
{issueCount: 15, failCount: 37, id: 2},
{issueCount: 15, failCount: 34, id: 3}];
var array2 = [{id: 1, totalAttempts: 57},
{id: 2, totalAttempts: 59},
{id: 3, totalAttempts: 67},
{id: 4, totalAttempts: 59}];
我有两个数组。从上面的数组中,我需要使用 (array1.fail count/array2.totalAttempts) * 100 [id is common between two arrays]来计算失败百分比。最终的数组需要以下格式。
outputArray = [{id: 1, issueCount: 16, failCount: 38, percentage: 66.66},
{id: 2, issueCount: 15, failCount: 37, percentage: 62.71},
{id: 3, issueCount: 15, failCount: 34, percentage: 50.74}];
提前致谢。
【问题讨论】:
-
outputArray = []; array1.forEach(function(dataItem1, idx) { var array2Items = array2[idx]; var outputItems = {}; if(dataItem1.id == array2Items.id){ outputItems.id = dataItem1.id; outputItems.issueCount = dataItem1 .issueCount; outputItems.failCount = dataItem1.failCount; outputItems.percentage = (dataItem1.failCount/array2Items.totalAttempts)*100; outputArray.push(outputItems); } });
-
当我的array1 长度和array2 长度相同并且array2 长度> array1 长度时,上面的代码工作正常。但是,当我的数组 1 长度 > 数组 2 长度时,它不起作用。我需要添加什么代码改进才能实现所有场景。提前致谢。
-
您真的应该参观一下以了解该网站的运作方式。即使使用不同的数组长度,提供的两种解决方案都可以解决您的问题。如果您只是对自己的答案写评论,没人会看到它
标签: javascript arrays javascript-objects