一个非常优秀的js 面试题

本文探讨了一道高级JavaScript面试题,要求实现find函数以满足特定的代码调用需求。文章包含了三种不同的解答方案,从基础实现到包含优化的多个条件判断,再到融合函数式编程思想,提升了函数的灵活性和兼容性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目 请实现 find 函数,使下列的代码调用正确。

在网上看见一个超有水平的题目,做出来记录一下。

// 约定:
// title数据类型为String
// userId为主键,数据类型为Number
var data = [
  {
   userId: 8,  title: 'title1'},
  {
   userId: 11, title: 'other'},
  {
   userId: 15, title: null},
  {
   userId: 19, title: 'title2'}
];
var find = function(origin) {
   
  // your code are here...
}
// 查找 data 中,符合条件的数据,并进行排序
var result = find(data).where({
   
  'title': /\d$/
}).orderBy('userId', 'desc');

console.log(result);// [{ userId: 19, title: 'title2'}, { userId: 8, title: 'title1' }];
 

回答1

中规中矩的回答

// 约定:
// title数据类型为String
// userId为主键,数据类型为Number
var data = [
    {
    userId: 8, title: 'title1' },
    {
    userId: 11, title: 'other' },
    {
    userId: 15, title: null },
    {
    userId: 19, title: 'title2' }
]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值