函数不返回编辑的数组
Posted
技术标签:
【中文标题】函数不返回编辑的数组【英文标题】:function doesn't return edited array 【发布时间】:2021-05-09 15:02:35 【问题描述】:我需要一个简单的函数来从现有数组创建新数组。我有很多数组,不是一次性操作,所以需要一个函数。
在函数内部一切正常,新数组包含我需要的值。但是在我执行它之后,新数组仍然是空的。
可能是什么问题?
$(document).ready(function()
const $myArrOne = [
'img/cakes/cake1.jpg',
'img/cakes/cake2.jpg',
'img/cakes/cake3.jpg',
];
let $myArrTwo = [];
const $myFunc = function(arrOne, arrTwo)
arrTwo = arrOne.map(item =>
return (item.slice(0, -4) + '-small.jpg');
);
return arrTwo;
;
$myFunc($myArrOne, $myArrTwo);
console.log($myArrTwo);
【问题讨论】:
你的函数看起来很奇怪,但为什么不只是$myArrTwo = $myFunc($myArrOne);
?
以上也消除了对全局变量的需要,应该避免。
如果您不了解“按引用”和“按值”的概念,请不要快速解释 - 也许这会有所帮助:***.com/questions/7744611/… 或 ***.com/questions/373419/…
在你的情况下:arrTwo =
改变了 arrTwo 指向的位置,所以你基本上做了function(arrOne) var arrTwo =
- 你传入参数的 arrTwo 被丢弃了,因为你已经把它做成了别的东西跨度>
感谢大家的建议
【参考方案1】:
问题在于您没有将函数返回的结果(数组)分配给任何对象。您只需在函数内部创建一个新的数组变量,仅此而已。
你可以这样修复它:
const $myArrOne = [
'img/cakes/cake1.jpg',
'img/cakes/cake2.jpg',
'img/cakes/cake3.jpg',
];
const $myFunc = arrOne =>
arrOne.map(item =>
item.slice(0, -4) + '-small.jpg');
let $myArrTwo = $myFunc($myArrOne);
console.log($myArrTwo);
【讨论】:
以上是关于函数不返回编辑的数组的主要内容,如果未能解决你的问题,请参考以下文章