gpt4 book ai didi

javascript - 取一个输入的一维数组[1,2,3,4],输出除当前索引[24,12,8,6]之外的整数的乘积;

转载 作者:搜寻专家 更新时间:2023-10-30 22:05:34 24 4
gpt4 key购买 nike

伙计们,我需要你的意见;我早些时候在面试中遇到过这个问题,我只是想确认我正确理解了问题并且得到了正确的答案。谢谢你。请检查下面的问题和我的回答:

输入一维数组[1,2,3,4],输出除当前索引[24,12,8,6]外的整数的乘积;

//My answer
function calculate(values:Array):Array {
var resultArray:Array = new Array();
for(var i:int = 0; i < values.length; i++) {
var getVal1:Number = 1;
for(var k:int = 0; k <= values.length; k++) {
if(i != k) {
var getVal2:Number = values[k];
getVal1 *= getVal2;
}
}
resultArray.push(getVal1);
}
return resultArray;
}

最佳答案

嵌套循环似乎是一种非常困惑的方式。

假设使用相对最新的浏览器(IE 8 及以下版本已经过时)或合适的 shim:

var resultArray = sourceArray.map(function(val,ind,arr) {
arr = arr.slice(0); // create copy of array to work on here
arr.splice(ind,1); // remove current item from array
return arr.reduce(function(prev,curr) {return prev*curr;},1);
});

Array.prototype.map
Array.prototype.reduce

编辑这是另一种应该更有效的方法:

var product = sourceArray.reduce(function(prev,curr) {return prev*curr;},1);
var resultArray = sourceArray.map(function(val) {return product/val;});

关于javascript - 取一个输入的一维数组[1,2,3,4],输出除当前索引[24,12,8,6]之外的整数的乘积;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17309349/

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