【发布时间】:2021-11-14 03:41:42
【问题描述】:
我有两个对象数组 arr 1 和 arr 2arr1 = [{fruit: 'apple',count: 0}] arr2 = [{fruit: 'apple',count: 0}]
需要创建接受 arr1 和 arr2 作为参数的函数,如果同样需要根据计数输入更新计数值,则比较水果名称,否则将值推送到数组中
样本输出 1:
输入:
arr1 = [{fruit: 'apple',count: 10}] arr2 = [{fruit: 'apple',count: 30},{fruit: 'orange',count: 20}]
输出:
[{fruit: 'apple',count: 40},{fruit: 'orange',count: 20}]
样本输出2
输入:
arr1 = [{fruit: 'apple',count: 15}] arr2 = [{fruit: 'orange',count: 20}]
输出:
[{fruit: 'apple',count: 15},{fruit: 'orange',count: 20}]
我尝试过的代码:
function compareAndUpdateCount(arr1, arr2) {
for (i = 0; i < arr1.length; i++) {
if (arr1[i].fruit === arr2[i].fruit) {
arr1[i].count = arr1[i].count + arr2[i].count;
} else {
arr1.push(arr2[i])
}
}
}
当数组长度相同时,这很好用,如果它不同,则需要帮助编写优化代码,如果我们有更多数据,还需要降低时间复杂度
【问题讨论】:
-
您尝试过的代码在哪里?这很简单。
-
我已添加代码
-
这是一个典型的案例,纸和笔可以解决您的问题。试着写出或画出这个算法。首先获取您的第一个输出并更改该设计以适合您的第二个输出。
标签: javascript html jquery angular react-native