当前位置: 首页>编程语言>正文

typescript 数组安全取值 数组api js


JS数组API汇总

  • 一、循环类
  • 1. arr.forEach() --- 遍历循环
  • 2. arr.map()---返回新数组,return什么就输出什么
  • 3. arr.every()---全部满足条件
  • 4. arr.some()---部分满足条件
  • 5. arr.filter()---条件过滤
  • 6.arr.reduce(callback,[initialValue])---汇总
  • **6.1累加:**
  • **6.2简单用法:**
  • **6.3数组处理:**
  • **6.4将数组转化为对象:**
  • **6.5将二维数组转化为一维:**
  • **6.6对象里的属性求和:**
  • **6.7获取数组中的最大值:**
  • **6.8计算数字列表的最大值和最小值:**
  • 7. arr.find()---查找指定元素
  • 8. arr.findIndex()---查找指定元素的下标
  • 9. arr.includes()---查找是否存在
  • 二、改变原数组类
  • 1. arr.splice(start, deleteCount ,value1)---删除、插入、替换:
  • 2. arr.reverse()---翻转数组
  • 3. arr.sort()---数组排序
  • 4. arr.unshift(value)---头部添加
  • 5. arr.shift(value)---头部删除
  • 6. arr.push(value)---尾部添加
  • 7. arr.pop(value)---尾部删除
  • 三、不改变原数组类
  • 1. arr.join("连接符")---连接
  • 2. arr.toString()---数组转字符串
  • 3. arr.concat("a","b",arr1)---合并
  • 4. arr.slice(start,end)---截取
  • 5. arr.indexOf(value,start)---查找



一、循环类

1. arr.forEach() — 遍历循环

var arr = [1, 2, 3, 4, 5];
arr.forEach(function(item, index){
  console.log(item, index);
});

2. arr.map()—返回新数组,return什么就输出什么

//求平方
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item,index,arr){
return item*item;
});
console.log(arr2); //[1, 4, 9, 16, 25]

3. arr.every()—全部满足条件

// 是否全部大于0
let a = [1,2,3,4].every(item => {
    return item > 0;
});
console.log(a); // true

4. arr.some()—部分满足条件

判断数组中有没有符合条件的元素,遇到符合条件的就退出循环。只要有一项满足条件,就会返回true。

// 是否有部分大于2
let a = [1,2,3,4].some(item => {
    return item > 2;
});
console.log(a); // true

5. arr.filter()—条件过滤

const persons = [
    {name: 'Jim', age: 22},
    {name: 'Alen', age: 17},
    {name: 'Lily', age: 20}
]
 
let a = persons.filter(person => {
    return person.age ==20;
});
console.log(a)  // [{name: 'Lily', age: 20}]

6.arr.reduce(callback,[initialValue])—汇总

initialValue (作为第一次调用 callback 的第一个参数。)//默认0

6.1累加:

var arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
    return prev + cur;
})
console.log(sum);

6.2简单用法:

var  arr = [1, 2, 3, 4];
var sum = arr.reduce((x,y)=>x+y)
var mul = arr.reduce((x,y)=>x*y)
console.log( sum ); //求和,10
console.log( mul ); //求乘积,24

6.3数组处理:

// 如:获取年龄大于18岁人的名字
const persons = [
    {name: 'Jim', age: 22},
    {name: 'Alen', age: 17},
    {name: 'Lily', age: 20}
]
 
let names = persons.reduce((names, person) => {
    if (person.age > 18) {
        names.push(person.name)
    }
    return names;
}, []);
console.log(names) // ['Jim', 'Lily']

6.4将数组转化为对象:

const arr = [
    {id: '1', name: 'Jim'},
    {id: '2', name: 'Lily'},
    {id: '3', name: 'Allen'}
]
 
let obj = arr.reduce((acc, current) => {
    return {...acc, [current.id]: current};
}, {})
 
console.log(obj)
// {
//     1: {id: '1', name: 'Jim'},
//     2: {id: '2', name: 'Lily'},
//     3: {id: '3', name: 'Allen'}
// }

6.5将二维数组转化为一维:

let arr = [[0, 1], [2, 3], [4, 5]]
let newArr = arr.reduce((pre,cur)=>{
    return pre.concat(cur)
},[])
console.log(newArr); // [0, 1, 2, 3, 4, 5]

6.6对象里的属性求和:

var result = [
    {
        subject: 'math',
        score: 10
    },
    {
        subject: 'chinese',
        score: 20
    },
    {
        subject: 'english',
        score: 30
    }
];

var sum = result.reduce(function(prev, cur) {
    return cur.score + prev;
}, 0);
console.log(sum) //60

6.7获取数组中的最大值:

let arr = [22, 19, 50, 7, 15];
let max = arr.reduce(function(x, y) {
  return x > y ? x : y;
}); // 50

6.8计算数字列表的最大值和最小值:

const readings = [0.3, 1.2, 3.4, 0.2, 3.2, 5.5, 0.4];
 
const initMinMax = {
    minReading: Number.MAX_VALUE,
    maxReading: Number.MIN_VALUE,
};
 
const minMax = readings.reduce((acc, current) => {
    return {
        minReading: Math.min(acc.minReading, current),
        maxReading: Math.max(acc.maxReading, current)
    }
}, initMinMax);
 
console.log(minMax); // -> {minReading: 0.2, maxReading: 5.5}

7. arr.find()—查找指定元素

找出第一个符合条件的数组成员,没找到返回 undefined

const persons = [
    {id: 1, name: 'Jim', age: 22},
    {id: 2, name: 'Alen', age: 17},
    {id: 3, name: 'Lily', age: 20}
]
 
let a = persons.find(person => {
    return person.id === 2;
});
 
console.log(a) // {id: 2, name: 'Alen', age: 17}

8. arr.findIndex()—查找指定元素的下标

找出第一个符合条件的数组成员的位置,没找到返回 -1

const persons = [
    {id: 1, name: 'Jim', age: 22},
    {id: 2, name: 'Alen', age: 17},
    {id: 3, name: 'Lily', age: 20}
]
 
let a = persons.findIndex(person => {
    return person.id === 2;
});
 
console.log(a) // 1

9. arr.includes()—查找是否存在

表示某个值是否在数组里,includes() 不接受函数参数。

let a = [1,2,3].includes(3);
console.log(a) // true

二、改变原数组类

1. arr.splice(start, deleteCount ,value1)—删除、插入、替换:

原数组被删除,返回所有被删除元素组成的子数组

从下标2位置开始删除数组后的两个元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,2);
console.log(fruits)//Banana,Orange
------------------------------------------
移除数组下标为2的元素一个,并在数组下标为2的位置添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi");
console.log(fruits)//Banana,Orange,Lemon,Kiwi,Mango

2. arr.reverse()—翻转数组

原数组机械性的倒转

3. arr.sort()—数组排序

直接修改原数组。

1- 默认按照数组元素第一位的ASCII码从小到大排列。
2- arr.sort(function(a,b){return a-b;}); 升序(只限数组中是数字或者数字字符串)。
3- arr.sort(function(a,b){return b-a;}); 降序(只限数组中是数字或者数字字符串)。
4- arr.sort(function(){
return Math.random()>.5 ? 1 : -1;
});随机打乱数组(数组中可以是任何数据类型)

4. arr.unshift(value)—头部添加

修改原数组, 返回新数组的length。

5. arr.shift(value)—头部删除

修改原数组, 返回被弹出的元素

6. arr.push(value)—尾部添加

修改原数组, 返回新数组的length。

7. arr.pop(value)—尾部删除

修改原数组, 返回被弹出的元素

三、不改变原数组类

1. arr.join(“连接符”)—连接

用连接符把数组里面的元素连接成字符串,如:arr.join(""),返回连接后的字符串

2. arr.toString()—数组转字符串

将数组中的元素用逗号连接成字符串,类似于arr.join(",")。

3. arr.concat(“a”,“b”,arr1)—合并

合并为新数组,返回新数组

var a = [1,2,3];
a.concat(4,5); // [1,2,3,4,5]
a.concat([4,5]); // [1,2,3,4,5]
a.concat(4, [5, [6, 7]]); // [1,2,3,4,5,[6,7]]

4. arr.slice(start,end)—截取

截取数组并返回一个新的数组,包含从 start(数组下标) 到 end (不包括该元素)即含头不含尾。

5. arr.indexOf(value,start)—查找

返回 item 的第一次出现的索引位置,如果在数组中没找到指定元素则返回 -1。

如果你想查找字符串最后出现的位置,请使用 lastIndexOf() 方法

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");//2
---------------------------从4开始查找,默认不填为从0开始
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.indexOf("Apple",4);//6



https://www.xamrdz.com/lan/5nd1932567.html

相关文章: