猿问

js数组操作问题

给定一个有序不重复数组arr1=[a1,a2,....,an],一个该数组的子集arr2=[b1,b2,....,bn](顺序与arr1一致)任意给定一个arr1的元素ai,请将其插入arr2并保证顺序与arr1的顺序一致
比如arr1[3,5,4,8],arr2[5,8]现在要把4插入到arr2需要结果为[5,4,8]
求一个优雅的运算方法
---------------分割线-------------
我采纳了@hkuclion的答案并作了小小的修改
letsource=[3,5,4,8];
lettarget=[5,8];
letneedle=4;
letsource_index=source.indexOf(needle);
if(source_index!==-1){
lettarget_index=-1;
while(source_index&&target_index===-1){
target_index=target.indexOf(source[--source_index]);
}
target.splice(target_index+1,0,needle);
}
ibeautiful
浏览 369回答 2
2回答

跃然一笑

尝试下面代码letsource=[3,5,4,8];lettarget=[5,8];letneedle=4;letsource_index=source.indexOf(needle);if(source_index!==-1){lettarget_index=source_index?target.indexOf(source[source_index-1])+1:source_index;target.splice(target_index,0,needle);}

胡子哥哥

还是二分修改一下比较的方式就行letarr1=[3,5,4,8]letarr2=[5,8]letindexMap={}for(leti=0;i
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答