1)去重 var arr = [1,4,5,4,5,1,2,3,2,3]; 返回的结果[1,4,5,2,3] 2)编写函数uniq(str),返回去掉str重复项的字符串。 例如,uniq(‘12223333’)将返回’123’ 3)完成getSum(),该函数接收1个数组作为参数,返回该数组中所有非重复数字的和; 例如:getSum([undefined,"23year",19,"097",1,"hello",null,1]) // return 20
时间: 2023-08-19 15:20:48 浏览: 151
好的,我会依次回答你的问题。
1)去重:
```javascript
var arr = [1,4,5,4,5,1,2,3,2,3];
var uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 4, 5, 2, 3]
```
2)编写函数uniq(str):
```javascript
function uniq(str) {
return Array.from(new Set(str.split(""))).join("");
}
console.log(uniq("12223333")); // "123"
```
3)完成getSum():
```javascript
function getSum(arr) {
let uniqueArr = Array.from(new Set(arr));
let sum = 0;
for (let i = 0; i < uniqueArr.length; i++) {
if (typeof uniqueArr[i] === "number" && !isNaN(uniqueArr[i])) {
sum += uniqueArr[i];
}
}
return sum;
}
console.log(getSum([undefined,"23year",19,"097",1,"hello",null,1])); // 20
```
希望这些代码能够帮到你。
相关问题
js indexOf 1)去重 var arr = [1,4,5,4,5,1,2,3,2,3]; 返回的结果[1,4,5,2,3] 2)编写函数uniq(str),返回去掉str重复项的字符串。 例如,uniq(‘12223333’)将返回’123’ 3)完成getSum(),该函数接收1个数组作为参数,返回该数组中所有非重复数字的和; 例如:getSum([undefined,"23year",19,"097",1,"hello",null,1])
好的,来一道 JavaScript 的题目,非常棒!让我们一步一步来解决这些问题:
1. 去重数组
我们可以使用两个循环,外层循环遍历数组中的每一个元素,内层循环遍历当前元素之后的所有元素,如果有重复的元素,则将这个元素从数组中删除。
代码如下:
```javascript
var arr = [1, 4, 5, 4, 5, 1, 2, 3, 2, 3];
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
console.log(arr); // [1, 4, 5, 2, 3]
```
2. 去重字符串
我们可以创建一个空对象,遍历字符串中的每一个字符,如果这个字符不在对象中,则将其添加到对象中,并将其添加到结果字符串中。
代码如下:
```javascript
function uniq(str) {
var obj = {};
var result = '';
for (var i = 0; i < str.length; i++) {
if (!obj[str[i]]) {
obj[str[i]] = true;
result += str[i];
}
}
return result;
}
console.log(uniq('12223333')); // '123'
```
3. 数组中所有非重复数字的和
我们可以先将数组去重,然后遍历数组中的每一个元素,如果这个元素不是 NaN,并且在数组中只出现了一次,则将其加入到总和中。
代码如下:
```javascript
function getSum(arr) {
var sum = 0;
for (var i = 0; i < arr.length; i++) {
if (!isNaN(arr[i]) && arr.indexOf(arr[i]) === arr.lastIndexOf(arr[i])) {
sum += Number(arr[i]);
}
}
return sum;
}
console.log(getSum([undefined, '23year', 19, '097', 1, 'hello', null, 1])); // 21
```
以上就是三个问题的解答,希望能够帮到你!
groupArr(list, field) { var fieldList = [], att = []; list.map((e) => { fieldList.push(e[field]) }) //数组去重 fieldList = fieldList.filter((e, i, self) => { return self.indexOf(e) == i }) for (var j = 0; j < fieldList.length; j++) { //过滤出匹配到的数据 var arr = list.filter((e) => { return e[field] == fieldList[j]; }) att.push({ nameType: arr[0].nameType, list: arr }) } return att; },
这段代码是一个分组函数,传入两个参数list和field,返回一个分组后的数组。首先,将list中每个元素的field字段存储到fieldList数组中,用于后续的分组操作。然后,使用filter方法对fieldList进行去重操作。接下来,遍历去重后的fieldList数组,对于每个元素,使用filter方法过滤出list中field字段匹配该元素的所有数据,将这些数据存入一个新的数组arr中。最后,将这个新数组arr和该元素的nameType属性一起存入一个对象中,将这些对象存入att数组中,并返回att数组。该函数的作用是将list数组根据field字段进行分组,返回一个以nameType为键,以list数组为值的对象数组。
阅读全文