将数组传递给Javascript中具有循环的函数
我需要一个函数,基本上就是将数组的成员乘以100。数组的成员数可能会更改。另外,我不能使用array.prototype.map之类的东西-它必须是一个循环 这是我到目前为止得到的结果,但newArray返回时未定义。。。我做错了什么将数组传递给Javascript中具有循环的函数,javascript,arrays,function,loops,Javascript,Arrays,Function,Loops,我需要一个函数,基本上就是将数组的成员乘以100。数组的成员数可能会更改。另外,我不能使用array.prototype.map之类的东西-它必须是一个循环 这是我到目前为止得到的结果,但newArray返回时未定义。。。我做错了什么 var a = [1, 2, 3]; function toPts(array){ for(var i=0; i<array.length; i++){ array[i] *= 100; } } var newArray
var a = [1, 2, 3];
function toPts(array){
for(var i=0; i<array.length; i++){
array[i] *= 100;
}
}
var newArray = toPts(a);
var a=[1,2,3];
函数toPts(数组){
对于(var i=0;ia
作为其通过引用的传递在适当位置相乘,因此在函数之后(该函数返回
s nothing)
您没有从函数返回任何内容,
您只需要在函数内返回修改后的数组(在循环完成执行后)
像
var a=[1,2,3];
函数toPts(数组){
for(var i=0;i默认情况下,函数在不返回任何内容时返回未定义。您的a
数组已更改为结果数组
var a = [1, 2, 3];
function toPts(array){
for(var i=0; i<array.length; i++){
array[i] *= 100;
}
}
console.log(a);//this give you resulted output becuse array is passing as call by reference. so changes made in the same array
var a=[1,2,3];
函数toPts(数组){
对于(var i=0;i您忘记返回数组。如果您只想修改现有数组,只需执行以下操作:
toPts(a);
console.log(a) // [100,200,300]
如果要使用原始未触及的新阵列:
function toPts(array){
var arr = array.slice(0); // copy array to new reference
for(var i=0; i<arr.length; i++){
arr[i] *= 100;
}
return arr;
}
var newArray = toPts(a);
console.log(newArray) // [100,200,300]
console.log(a) // [1,2,3]
函数顶级(数组){
var arr=array.slice(0);//将数组复制到新引用
对于(var i=0;i您需要返回数组,现在您只需修改现有的数组。如果这是一个巨大的数组,您是否也应该缓存array.length值?这并不是必需的,因为.length
是一个属性,而不是调用时计算的值,因此它与存储在变量中相同。只有IE似乎从捕获数组le中受益Ngold wive的故事…你说得对。这看起来确实像是做了i--而不是i++etc节省了一点。看起来他想要一个新数组,而不是修改他当前的数组。@tbh_uuuuuuu接受的答案仍然引用同一个数组,所以它不是真正的“新”数组。
var a = [1, 2, 3];
function toPts(array){
for(var i=0; i<array.length; i++){
array[i] *= 100;
}
return array;
}
var newArray = toPts(a);
var a = [1, 2, 3];
function toPts(array){
for(var i=0; i<array.length; i++){
array[i] *= 100;
}
}
console.log(a);//this give you resulted output becuse array is passing as call by reference. so changes made in the same array
toPts(a);
console.log(a) // [100,200,300]
function toPts(array){
var arr = array.slice(0); // copy array to new reference
for(var i=0; i<arr.length; i++){
arr[i] *= 100;
}
return arr;
}
var newArray = toPts(a);
console.log(newArray) // [100,200,300]
console.log(a) // [1,2,3]