javascript - ES6函数返回 `undefined`而不是预期的字符串?

标签 javascript ecmascript-6 return each

我正在遍历 div 来查找一系列 div 上的单个“事件”类。然后我想从该 div 获取数据属性。我得到了数据属性,但似乎无法使用 return 将其传递出函数。 。它记录 undefined .

const getPostcardLink = () => {
  console.log('getPostcardLink()...');
  $('.postcard').each(function () {
    if ($(this).hasClass('active')) {
      const postcard = $(this).data('postcard');
      console.log(postcard);
      return postcard;
    }
    return 'error';
  });
};

const getStampLink = () => {
  console.log('getStampLink()...');
  $('.stamp').each(function () {
    if ($(this).hasClass('active')) {
      const stamp = $(this).data('stamp');
      console.log(stamp);
      return stamp;
    }
    return 'error';
  });
};

function updatePostcard() {
  const postcard = `images/_${getPostcardLink()}.jpg`;
  const stamp = `images/_${getStampLink()}.jpg`;
  console.log(`${postcard} with ${stamp}`);
}

$(document).ready(() => {
  updatePostcard();
});

日志返回...

getPostcardLink()...
p1
getStampLink()...
s1
images/_undefined.jpg with images/_undefined.jpg

最佳答案

使用.filter()getStamp() 处的相同模式

const getPostcardLink = () => {
  console.log('getPostcardLink()...');
  let elems = $('.postcard').filter(function () {
    return $(this).hasClass('active')
  });
  if (elems.length) {
      const postcard = elems.data('postcard');
      console.log(postcard);
      return postcard
  }
  return "error"
};

function updatePostcard() {
  let cLink = getPostcardLink();
  let sLink = getStampLink();
  if (cLink !== "error") const postcard = `images/_${cLink}.jpg`;
  if (sLink !== "error") const stamp = `images/_${sLink}.jpg`;
  if (postcard && stamp) console.log(`${postcard} with ${stamp}`);
}

关于javascript - ES6函数返回 `undefined`而不是预期的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42634931/

相关文章:

json - ReactJs中基于动态路径加载图像

reactjs - 在 React 中解构和转换

node.js - 为什么我在尝试运行 webpack 打包的 Node 项目时得到 "TypeError: Class extends value undefined is not a constructor or null"

unix - 检查来自 Unix 脚本的 ftp 返回码

c - C函数的有趣返回行为

javascript - 在函数声明中使用 Underscore 的 _.throttle

javascript - 事件发生时如何将值传递给 Django 中的 url?

javascript - 如何在javascript中对数组序列进行排序?

javascript - 如何制作可搜索的下拉菜单

java如何从数据库中取出数据