8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

向 javascript 对象添加动态键和动态值

Mr P 2月前

25 0

我想从下面的 typescript 函数中返回这样的对象: marked = { '2024-08-21': { dots:[food,cycling] }, '2024-08-22': { ...

我想从下面的打字稿函数中返回这样的对象:

    marked = {
      '2024-08-21': {
        dots:[food, recycling]
      },
      '2024-08-22': {
        dots:[food, recycling]
      }
    }

这是我目前所拥有的。

function addKeysAndValuesDynamically(days: string[]): any {
  var marked = {};
  const food = {key: 'food', color: 'brown'};
  const recycling = {key: 'recycling', color: 'green'};
  days.forEach((day: string) => {
    marked[day]['dots'] = food, recycling;
  });
  return marked;
}

var days: string[] = ['2024-08-21', '2024-08-22'];
var marked = addKeysAndValuesDynamically(days);
console.log(`marked = ${marked}`);

我期望它返回如上所示的“标记”对象,但是我收到一个错误: TypeError: Cannot set property 'dots' of undefined .

帖子版权声明 1、本帖标题:向 javascript 对象添加动态键和动态值
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Mr P在本站《typescript》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我假设你刚从 javascript 转到 typescript,因为你试图避免使用类型,你可以使用接口来实现这一点:

    interface KeyColor {
        key: string;
        color: string;
    }
    
    interface Marked {
        [day: string]: {
            dots: [KeyColor, KeyColor]
        }
    }
    
    function addKeysAndValuesDynamically(days: string[]): Marked {
      const marked: Marked = {};
      const food = {key: 'food', color: 'brown'};
      const recycling = {key: 'recycling', color: 'green'};
      days.forEach((day: string) => {
        marked[day] = { dots: [food, recycling] }
      });
      return marked;
    }
    
    var days: string[] = ['2024-08-21', '2024-08-22'];
    var marked = addKeysAndValuesDynamically(days);
    console.log(marked); // you have to log it this way to view object properties
    

    游乐场链接

返回
作者最近主题: