当前位置: 首页 > 知识库问答 >
问题:

javascript - 一个js输出格式的奇葩需求?

孟树
2024-08-30

下面是拿到的数据,

let data={name:'寅春树',sex:"男",age:25,address:"中国洛阳"}

下面的是需要输出的文本格式
{name},{sex}{age}

文本格式是通过接口拿到的,我现在想输出以文本格式那样的格式,也就是
寅春树,男25

我考虑用‘模板字符串’但发现不行,因为格式是接口后来拿到的,没办法直接用模板字符串,有大神有办法吗?
文本格式预先不知道,是接口拿的,这只是一个格式,也可能是其它格式,这种情况下怎么按格式输出对应的值。

共有5个答案

姚嘉容
2024-08-30
let data = { name: '寅春树', sex: "男", age: 25, address: "中国洛阳" };
let str = '{name},{sex},{age}';
let result = str.replace(/\{(\w+)\}/g, (match, key) => {
  if (data.hasOwnProperty(key)) {
    return data[key];
  }
  return match;
});

申屠黎昕
2024-08-30
let data = { name: '寅春树', sex: "男", age: 25, address: "中国洛阳" };
let str = '{name},{sex},{age}';
let result = str.replace(/\{(\w+)\}/g, (match, key) => {
  if (data.hasOwnProperty(key)) {
    return data[key];
  }
  return match;
});
濮金鑫
2024-08-30

用字符串替换

const  data = {name:'寅春树',sex:"男",age:25,address:"中国洛阳"}
let str = `{name},{sex}{age}`
str = str.replace("{name}", data.name);
str = str.replace("{sex}", data.sex);
str = str.replace("{age}", data.age);
console.log('str', str); // '寅春树,男25'

实际使用中可以遍历data中的key,动态替换

壤驷高洁
2024-08-30

大佬,没看明白题啊 这看着不就是拿数据里面的这三个字段吗?还是说接口返回的字段名是动态的,不一定是这三个?

田德馨
2024-08-30

那就直接 replace

function replacer(context, template) {
    Object.keys(context).forEach((key) => {
        template = template.replaceAll(`{${key}}`, context[key])
    })
    return template
}

const data={ name:'寅春树', sex:"男", age:25, address:"中国洛阳" }
const result = replacer(data, '{name},{sex}{age}') // '寅春树,男25'
 类似资料:
  • 本文向大家介绍js 奇葩技巧之隐藏代码,包括了js 奇葩技巧之隐藏代码的使用技巧和注意事项,需要的朋友参考一下 昨天在群看到有人发了个文章叫《“短”化你的代码》,思路非常不错,采用unicode的零宽字符来实现字符隐藏,虽然有字符,可是你却看不见它。 这篇文章详细的介绍了这种方法的实现原理,最后还给出了一个生成工具。 当然,作者算了留了一个小小的练习给我们,因为他只用了两个字符,导致转换后的数据是

  • 现在大部分人秋招已经结束了,但是在秋招的过程,还是有很多奇葩的面试,楼主经历了大大小小多次面试,从大三上开始到现在秋招,但是我经历过目前最奇葩的面试还要属思特奇。 楼主面的是大数据开发的岗位,之前有在小红书,字节,百度实习过 问:你在字节干了这么久,做的啥工作(这是最正常的一个问题) 我:数仓,后面又说了相关业务 问:那你数仓干的比较多,你说下数仓如何修改数据 我:???修改数据?数仓修改数据代价

  • 好吧,我一直在制作一个表格,允许用户输入某些输入并像excel一样运行。由于这与程序的目的以及它如何显示内容无关,因此我不会在这篇文章中讨论其目的。有没有办法在演示输出中添加更多小数点?我尝试添加 'total.toFixed(3) 这并没有解决问题。然后我尝试了我现在插入的内容。我没有想法。

  • 我们可以看到格式化就是通过格式字符串得到特定格式: format!("{}", foo) -> "3735928559" format!("0x{:X}", foo) -> "0xDEADBEEF" format!("0o{:o}", foo) -> "0o33653337357" 根据使用的参数类型,同样的变量(foo)能够格式化成不同的形式:X, o 和未指定形式。 这个格式化的功能是通过 t

  • 摆烂了,投了400家,面了30多家,连个毛都没有 从焦虑到摆烂了 今后下午3点,专门吐槽:吐槽互联网大厂的奇葩面试题 看面经看吐了,吐吐槽至少少点郁闷 大家可留言遇到的奇葩和不理解的问题,我来发吐槽 面经题:从产品的角度,怎么说服用户去使用我们的产品 来源:阿里云数据产品实习岗 吐槽: 面试官,你能不能请你的火箭狗过来一下?从我的疯狂角度来看,我会派遣一只来自外太空的火箭狗,它会飞到用户家里,吐出

  • 问题内容: 我想知道Java是否有某种类可以帮助输出格式化。我知道在C ++中,在iomanip中,有一个方法调用setw。我想知道Java是否有与此类似的东西。 问题答案: 看看java.util.Formatter。 String.format()提供了一个方便的包装器。 例如(从链接上的示例修改): 它超越了C的?printf格式。例如,它支持可选的语言环境,并且格式符号可以通过显式索引而不

  • 当我在snowflake中查询外部表(指向CSV文件)时,结果以JSON格式显示。 我如何检索我的结果在表格格式,而不使用任何这样的sql下面。我想做,我希望它以显示格式显示。 有什么想法吗?谢了。

  • 我做了这个代码,应该增加一个数字,直到得到这个输入数字的下一个回文数。 程序将数字作为字符串",因为它可能是一个非常大的数字(0 密码 它开始获取当前位置的数字,并将其递增,然后再次返回为字符 问题所在 这一行显示运行时的数字状态,如下所示: 虽然这是必须的 我不知道哪里出错了。。有人能帮忙吗 注意:“isAlindrome”是一个以字符串为参数的函数,如果原始字符串等于其倒数,则返回true。。