JavaScript数组方法是非常强大的功能(方法),它们已经抽象了许多功能。这些方法可帮助开发人员轻松操纵阵列以实现所需的结果。
检查array methods以获取JavaScript中一些数组方法的列表。
例如;想象一下,您正在使用下面的数组,并且需要计算数组中每个元素出现的次数。
const data = [
'car',
'car',
'truck',
'truck',
'bike', 'SUV', 'van','car',
'walk',
'car',
'van',
'bike',
'walk',
'car',
'van',
'car',
'truck',
];
可以使用几个数组方法来获得所需的结果。
使用reduce()
方法计算项目数
//set the result to a variable
let itemsObject = data.reduce((accumulator, item) => {
if (accumulator[item]) {
++accumulator[item];
} else {
accumulator[item] = 1;
}
return accumulator;
}, {})
//USING TENARY OPERATOR
let itemsObject = data.reduce((accumulator, item) => {
return accumulator[item] ? ++accumulator[item] : (accumulator[item] = 1), accumulator
}, {})
console.log(itemsObject)
/*
{
bike: 2,
car: 6,
SUV: 1,
truck: 3,
van: 3,
walk: 2
}
*/
reduce()
是一种有助于获取数组中每个项目的出现数量的方法。
计算使用for of
循环的项目数
for of
循环是for loop
的修改。它使遍历阵列,地图,字符串等迭代更加容易。它的功能就像forEach()
方法一样运行。 for of
循环和forEach()
方法之间的主要区别在于,for of
loop与async
函数更兼容。
//initialize an empty object to store the items
let countVal = {};
for (val of data) {
if (countVal[val]) {
countVal[val] += 1;
} else {
countVal[val] = 1;
}
}
console.log(countVal)
/*
{
bike: 2,
car: 6,
SUV: 1,
truck: 3,
van: 3,
walk: 2
}
*/
结论
其他几个数组方法也可以用来完成此任务,但是,如果您需要计算数组中存在的项目数,则使用for of
循环是可取的,因为它与async
函数的兼容性。 reduce()
方法也是一个不错的选择。