数学与打字稿数组 - 角度



我对如何处理这个问题感到非常困惑:

我有一个这样的数组:

arr=["X12","Z1","Y7","Z22","X4","X8"]

我希望对元素执行数学函数,以便:

每个以"X"开头的元素5都有一个固定的值,因此如果数组arr内有3个以"X"开头的元素,它应该为(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);

你也可以试试这个

  1. 循环到阵列
  2. 查找您找到开头有 X 的值的次数

var  arr=["X12","Z1","Y7","Z22","X4","X8"]
let total = 0
arr.forEach(
(row) =>{
total =  row.startsWith('X')? total + 1 : total
}
)
console.log(total * 5)

最新更新