目录
创建一个具有m
行和n
列“零”的二维数组
function zeroArray(m, n) {
// 创建一个二维数组,有 m 行 n 列,元素均为 0
let newArray = new Array;
let row = new Array;
for (let i = 0; i < m; i++) {
// 添加第 m 行到 newArray
for (let j = 0; j < n; j++) {
// 将 n 个 0 推入当前行以创建列
row.push(0);
}
// 将当前行(已有 n 个 0)推送到数组
newArray.push(row);
row = [];//this
}
return newArray;
}
let matrix = zeroArray(3, 2);
console.log(matrix);
splice()
splice()
最多可以接受 3 个参数,第一个参数代表从数组中的哪个索引开始移除元素,而第二个参数表示要从数组中的这个位置开始删除多少个元素,第三个参数可以是一个或多个元素,这些元素会被添加到数组中。
slice()
slice()
不会修改数组,而是会复制出一个新数组。 slice()
只接收 2 个输入参数:第一个是开始提取元素的位置(索引),第二个是提取元素的结束位置(索引)。 提取的元素中不包括第二个参数所对应的元素。
function forecast(arr) {
let newArr=arr.slice(2, 4);
return newArr;
}
console.log(forecast(['cold', 'rainy', 'warm', 'sunny', 'cool', 'thunderstorms']));
使用 for 循环遍历数组中的全部元素
function filteredArray(arr, elem) {
let newArr = [];
for(let i = 0; i < arr.length; i++){
if(arr[i].indexOf(elem) == -1){//注意思路
newArr.push(arr[i]);
}
}
return newArr;
}
反转字符串
function reverseString(str) {
let result = "";
for (let i = str.length - 1; i >= 0; i--) {
result += str[i];
}
return result;
}
reverseString("hello"); //olleh
找出多个数组中最大数字
function largestOfFour(arr) {
let array=[];
for(let i=0;i<arr.length;i++)
{
arr[i].sort(function(x,y){
return y-x;
});
array.push(arr[i][0]);
}
console.log(array);
return array;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
确认结尾
slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
// 方法一
function confirmEnding(str, target) {
if(str.slice(-target.length)===target){
return true;
}else{
return false;
}
}
confirmEnding("Bastian", "n");
// 方法二
function confirmEnding(str, target) {
let arr1=str.split('');
console.log(arr1);
let arr2=target.split('');
console.log(arr2);
let j=arr1.length-1;
console.log(j);
for (let i = arr2.length-1; i >=0; i--,j--) {
console.log(i);
if(arr1[j]!=arr2[i]){
return false;
}
}
return true;
}
console.log(confirmEnding("Bastian", "n"));
按参数过滤数组
对于数组中的一个元素 x
,若 func(x)
返回的结果为 true
,则校验测试通过。 如果没有符合条件的元素,返回 undefined
。
function findElement(arr, func) {
let num = 0;
for(let i=0;i<arr.length;i++){
if(func(arr[i])){
num=arr[i];
break;
}
}
if(!num){
return undefined;
}else{
return num;
}
}
console.log(findElement([1, 2, 3, 4], num => num % 2 === 0));
Slice 与 Splice
function frankenSplice(arr1, arr2, n) {
let newArr=arr2.slice('');// 不改变源数组
for(let i=0;i<arr1.length;i++){
newArr.splice(n,0,arr1[i]);
n++;// 插入的位置
}
return newArr;
}
console.log(frankenSplice([1, 2, 3], [4, 5, 6], 1));
找出元素在排序后数组中的索引
function getIndexToIns(arr, num) {
arr.push(num);
arr.sort(function(a,b){
return a-b;
})
let index=arr.indexOf(num);
return index;
}
console.log(getIndexToIns([40, 60], 50)); // 1
比较字符串是否存在包含关系
function mutation(arr) {
let item1 = arr[0].toLowerCase();
let item2 = arr[1].toLowerCase();
let len2 = item2.length;
for(let i=0;i<len2;i++){
if(item1.indexOf(item2[i])== -1){
return false;
}
}
return true;
}
console.log(mutation(["hello", "Hello"]));
根据size分隔成二维数组
function chunkArrayInGroups(arr, size) {
let newArr=[];
for(let i=0;i<arr.length;i+=size){
let item=arr.slice(i,i+size);// [ 'a', 'b' ], [ 'c', 'd' ]
newArr.push(item);
}
return newArr;
}
console.log(chunkArrayInGroups(["a", "b", "c", "d"], 2));