gpt4 book ai didi

javascript - 提取任意给定数组中的所有数字,然后将它们全部加在一起。

转载 作者:行者123 更新时间:2023-11-28 19:03:12 24 4
gpt4 key购买 nike

我试图想出一个函数,它可以接受任何类型的数组(对象、其他数组、字符串、数字、 bool 值等)并提取所有数字(即使它们是字符串),然后将它们全部加在一起返回总和。

到目前为止,我试图提出一个函数,该函数首先找到所有整数并将它们全部加在一起,然后再担心将表示数字的任何字符串转换为整数并将它们相加:

function arraySum(array) {
// the array could be containing integers, strings, objects and/or arrays like itself.
// Sum all the integers you find, anywhere in the nest of arrays.
var sum = 0
var numArray = []

for (i=0; i > array.length; i++) {
if (typeOf array[i] == Number) {
numArray.push(i);
for (j=0; j> numArray.length; j++) {
sum += numArray[j];
return sum;
};
}
}
}

arraySum([1,2,3,["Here is a string", "67", 67], {key: "55", value: 55}, true, 56]);

我期望 sum 的返回值为 184

总和应返回 306(一旦函数更新为将数字字符串转换为整数)

最佳答案

var a = [1, 2, 3, ["Here is a string", "67", 67], {key: "55", value: 55 }, true, 56];


function arraySum(obj) {
var sum = 0;
var num = Number(obj);

if (typeof obj === 'boolean') {
return 0;
}

if (typeof num === 'number' && !isNaN(num)) {
return num;
}

if (typeof obj !== 'object') {
return 0;
}

if (obj.length) {
for (var i = 0; i < obj.length; i++) {
sum += arraySum(obj[i]);
}
}
else {
for (var p in obj) {
sum += arraySum(obj[p]);
}
}

return sum;
}


console.log(arraySum(a));

关于javascript - 提取任意给定数组中的所有数字,然后将它们全部加在一起。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32163000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com