JS——两个数组数据结合

该代码段使用JavaScript的Array.prototype.map和Array.prototype.find方法,将两个数组letarr和letresData按shxydm键值匹配,合并成新的数组,将resData中的A属性添加到letarr对象中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

let arr = [
   {shxydm:'1',gsmc:'小艾',xh:'1',A:'1a',B:'2a'},
   {shxydm:'2',gsmc:'肖特',xh:'2',A:'2',B:'2b'},
]

let resData = [
{shxydm:'1',A:'1.44'},
{shxydm:'2',A:'2.44'},
]


arr = arr.map(item => {
const data = resData.find(i => item.shxydm == i.shxydm);
return {
   ...item,
   ...data
};
});

console.log("arr",arr);

在这里插入图片描述

### JavaScript 中合并或拼接两个数组的方法 在 JavaScript 中,有多种方法可以实现两个数组的合并或拼接操作。以下是几种常见的技术及其具体实现: #### 使用 `Array.prototype.concat()` 方法 `concat()` 是一种内置方法,用于将一个或多个数组组合成一个新的数组。它不会改变原始数组,而是返回一个新的数组。 ```javascript let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; let mergedArray = array1.concat(array2); // [1, 2, 3, 4, 5, 6] ``` 这种方法简单直观,适用于大多数场景[^2]。 --- #### 利用扩展运算符 (`...`) 扩展运算符允许在一个表达式中展开可迭代对象(如数组)。通过这种方式,可以直接创建新的合并数组。 ```javascript let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; let mergedArray = [...array1, ...array2]; // [1, 2, 3, 4, 5, 6] ``` 此方法现代且简洁,在支持 ES6 的环境中推荐使用[^1]。 --- #### 借助 `Array.prototype.push.apply()` 如果希望直接修改原数组而不是生成新数组,则可以通过 `push` 和 `apply` 来完成这一目标。 ```javascript let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; array1.push.apply(array1, array2); // 或者更现代化的方式: array1.push(...array2); console.log(array1); // [1, 2, 3, 4, 5, 6] ``` 需要注意的是,这种做法会更改第一个数组的内容。 --- #### 运用 `reduce()` 实现复杂逻辑下的数组合并 当面对多维嵌套或者需要额外处理的情况时,`reduce()` 提供了一种灵活的选择。 ```javascript let nestedArrays = [[1, 2], [3, 4], [5, 6]]; let flattenedAndMerged = nestedArrays.reduce((acc, curr) => acc.concat(curr), []); // 结果:[1, 2, 3, 4, 5, 6] ``` 尽管这主要用于扁平化或多步操作,但它同样能够满足基本的数组合并需求[^3]。 --- #### 对象属性分配法——`Object.assign()` 虽然主要设计用来浅拷贝对象,但也可以间接应用于简单的数组连接案例之中。 ```javascript let targetArray = []; let sourceArray1 = [1, 2, 3]; let sourceArray2 = [4, 5, 6]; Object.assign(targetArray, sourceArray1, sourceArray2); console.log(targetArray); // [1, 2, 3, 4, 5, 6] ``` 不过需注意该方式本质上并非专为数组而设,因此可能不如上述专用手段那么高效[^4]。 --- ### 性能考量与适用范围 对于小型至中型规模的数据集合来说,以上任何一种方案都表现良好;然而针对海量级的大数据集而言,考虑到时间复杂度等因素的影响,某些特定场合下或许应该优先选用诸如归并排序之类更为优化的技术路线来管理这些庞大的资料[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值