arrays - 带有打字稿数组的数学 - Angular
问题描述
我真的很困惑如何解决这个问题:
我有一个这样的数组:
arr=["X12","Z1","Y7","Z22","X4","X8"]
我希望对元素执行数学函数,例如:
每个以“X”开头的元素都有一个固定值5
,因此如果3
数组中有以“X”开头的元素arr
,它应该是:(fixed value of X) multiplied by (No. of "X" element occurrences inside array) = 5x3 = 15.
我尝试了类似的方法来计算编号。“X”元素的出现,但它不起作用。
var xcounter = 0;
calculate(){
this.arr.forEach(element => {
if(this.arr.includes("X"))
{
this.xcounter++; //this doesn't give me no. of X element occurrences though.
}
});
}
什么是一种无杂乱的方式来做到这一点?
解决方案
您可以尝试将数组filter()
与字符串startsWith()
方法一起使用。
var arr = ["X12","Z1","Y7","Z22","X4","X8"];
var valueX = 5;
var occurencesX = arr.filter(item => item.startsWith('X')).length;
console.log(occurencesX * valueX);
推荐阅读
- node.js - 用于多个对象数组的猫鼬嵌套模式
- qt - 如何在图表qml的轴上获得一些边距
- c++ - 程序崩溃后是否可以执行代码?
- linux - X11 转发 ssh Visual Studio 远程连接
- html - 如何将徽标放在顶部和底部?
- eclipse - 机器人框架输出和结果文件路径和名称配置
- javascript - 将 Clover POS 对象放入网页
- sql - Oracle TO_DATE: Works in SELECT; Not a Valid Month in WHERE Clause
- php - Composer 自动加载未找到类 psr4
- git - git gui 为分支名称创建自定义快捷方式