首页 > 解决方案 > 函数不返回编辑后的数组

问题描述

我需要一个简单的函数来从现有数组创建新数组。我有很多数组,它不是一次性操作,所以我需要一个函数。

函数内部一切正常,新数组包含我需要的值。但是在我执行它之后,新数组仍然是空的。

可能是什么问题?

$(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);
}

标签: javascriptjqueryarraysfunction

解决方案


问题是您没有将函数返回的结果(数组)分配给任何东西。您只需在函数内部创建一个新的数组变量,仅此而已。

你可以像这样修复它:

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);

推荐阅读