【发布时间】: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);? -
以上也消除了对全局变量的需要,应该避免。
-
如果您不了解“按引用”和“按值”的概念,请不要快速解释 - 也许这会有所帮助:stackoverflow.com/questions/7744611/… 或 stackoverflow.com/questions/373419/…
-
在你的情况下:
arrTwo =改变了 arrTwo 指向的位置,所以你基本上做了function(arrOne) { var arrTwo =- 你传入参数的 arrTwo 被丢弃了,因为你已经把它做成了别的东西跨度> -
感谢大家的建议
标签: javascript jquery arrays function