基于指定条件合并两个字符串数组的最优方法
数组合并实现方案
需求说明
合并两个字符串数组生成最终数组(数组3),需遵循以下规则:
- 保留数组2中所有不等于
hideValue123的元素 - 数组2中值为
hideValue123的元素,替换为数组1对应索引位置的元素 - 严格保持原有索引顺序
示例数据
数组1
0: "Cloud Infrastructure" 1: "Cloud Infrastructure" 2: "IaaS" 3: "IaaS" 4: "Infrastructure" 5: "Infrastructure" 6: "Compute" 7: "Compute" 8: "Compute" 9: "Compute"
数组2
0: "hideValue123" 1: "hideValue123" 2: "hideValue123" 3: "hideValue123" 4: "hideValue123" 5: "hideValue123" 6: "Networking" 7: "Networking" 8: "Networking" 9: "Networking"
期望结果(数组3)
0: "Cloud Infrastructure" 1: "Cloud Infrastructure" 2: "IaaS" 3: "IaaS" 4: "Infrastructure" 5: "Infrastructure" 6: "Networking" 7: "Networking" 8: "Networking" 9: "Networking"
代码实现
JavaScript 实现
const array1 = ["Cloud Infrastructure", "Cloud Infrastructure", "IaaS", "IaaS", "Infrastructure", "Infrastructure", "Compute", "Compute", "Compute", "Compute"]; const array2 = ["hideValue123", "hideValue123", "hideValue123", "hideValue123", "hideValue123", "hideValue123", "Networking", "Networking", "Networking", "Networking"]; const hideValue = "hideValue123"; const array3 = array2.map((item, index) => item === hideValue ? array1[index] : item); console.log(array3);
Python 实现
array1 = ["Cloud Infrastructure", "Cloud Infrastructure", "IaaS", "IaaS", "Infrastructure", "Infrastructure", "Compute", "Compute", "Compute", "Compute"] array2 = ["hideValue123", "hideValue123", "hideValue123", "hideValue123", "hideValue123", "hideValue123", "Networking", "Networking", "Networking", "Networking"] hide_value = "hideValue123" array3 = [array1[i] if item == hide_value else item for i, item in enumerate(array2)] print(array3)
Java 实现
import java.util.ArrayList; import java.util.List; public class ArrayMerge { public static void main(String[] args) { String[] array1 = {"Cloud Infrastructure", "Cloud Infrastructure", "IaaS", "IaaS", "Infrastructure", "Infrastructure", "Compute", "Compute", "Compute", "Compute"}; String[] array2 = {"hideValue123", "hideValue123", "hideValue123", "hideValue123", "hideValue123", "hideValue123", "Networking", "Networking", "Networking", "Networking"}; String hideValue = "hideValue123"; List<String> array3 = new ArrayList<>(); for (int i = 0; i < array2.length; i++) { array3.add(array2[i].equals(hideValue) ? array1[i] : array2[i]); } // 打印结果 for (int i = 0; i < array3.size(); i++) { System.out.println(i + ": \"" + array3.get(i) + "\""); } } }
内容的提问来源于stack exchange,提问作者gjonte
相关产品推荐
相关产品推荐

