1、字符串反转’123abc‘ -> ‘cba123‘
let str = "123abc";
let res = str.split("").reverse().join("");
console.log(res); // 'cba123'
/*
let res1 = str.split('')
console.log('res1',res1); // ['1','2','3','a','b','c']
let res2 = res1.reverse()
console.log('res2',res2); // ['c','b','a','3','2','1']
let res3 = res2.join('');
console.log('res3',res3); // 'cba123'
*/
2、在有序的数组里找出指定的值,返回该值在数组中的索引。(二分查找)
var arr = [1, 3, 5, 7, 9, 11, 12, 14, 17, 19];
方法一:
function getIndex(arr,value){
let len = arr.length;
for(let i=0;i<len;i++){
if(arr[i] === value){
return i;
}
}
}
console.log(getIndex(arr,9));
方法二:
function getIndex(arr,value){
arr.findIndex(function(item,index){
if(item===value){
console.log(index);
}
})
}
getIndex(arr,9);
二分查找
function getIndex(arr, value) {
var low = 0; //开始的索引值,一上来默认为0
var high = arr.length - 1; //结束的索引值,一上来默认为最后一个值的索引值
while (low <= high) {
var mid = parseInt((low + high) / 2);
if (value == arr[mid]) {
// 这个条件成立说明现在已经找到了用户传的那个值了
return mid; //返回找到数据对应的索引值
} else if (value < arr[mid]) {
// 如果用户传的值小于数组中的值,那么需要找到第一个大于等于用户传的值的值
high = mid - 1;
} else {
// 如果用户传的值大于数组中的值,那么需要找到第一个小于等于用户传的值的值
low = mid + 1;
}
}
return -1;
}
console.log(getIndex(arr, 17)); // 7
3、判断数组是否为对称数组,对称数组形式如:[1,2,3,4], [1,2,4,3]
var arr1 = [1, 2, 3, 4, 2, 3, 1];
var arr2 = [1, 2, 3, 3, 2, 1];
var arr3 = [1, 2, 3, 1, 2, 3];
方法一:
function symmetry(arr) {
var newArr = []; //创建一个新的数组
for (let i = 0; i < arr.length; i++) {
newArr.push(arr[i]); //将原来的数组拷贝一份
}
newArr.reverse(); //倒序
for (var i = 0; i < arr.length; i++) {
if (newArr[i] != arr[i]) return false;
}
return true;
}
console.log(symmetry(arr3));
方法二:
function symmetry(arr) {
var low = 0;
var high = arr.length - 1;
for (var i = 0; i < arr.length; i++) {
low++;
high--;
if (arr[low] != arr[high]) return false;
}
return true;
}
console.log(symmetry(arr3));
方法三:
function symmetry(arr) {
var low = 0;
var high = arr.length - 1;
while (true) {
if (low >= high) break;
if (arr[low] != arr[high]) return false;
}
low++;
high--;
}
console.log(symmetry(arr2));
本文介绍了三种JavaScript数组操作:如何反转字符串,实现二分查找算法来在有序数组中寻找指定值并返回索引,以及如何判断一个数组是否是对称数组。提供了不同的函数实现方法和示例代码。
3312

被折叠的 条评论
为什么被折叠?



