javascript - 选择某些值并在 ES6 中按字母顺序排序

标签 javascript ecmascript-6

如何使用 ES6 选择某些值并按字母顺序对它们进行排序。 当前代码定义了一个常量。我想知道我是否可以在不必创建一个仅包含我需要的值的新常量的情况下操纵这些数据。

export const names = {
John: 'John',
Mike: 'Mike',
David: 'David',
Chris: 'Chris'
};

只返回 Chris 和 David。

克里斯

大卫

最佳答案

const names = {
  John: 'John',
  Mike: 'Mike',
  David: 'David',
  Chris: 'Chris',
};

const searchNames = (args, search) => {
  const arr = Object.values(args);
  const result = arr.filter(n => {
    return search.includes(n);
  });
  return result.sort().join('\n');
};

searchNames(names, ['David', 'Chris']);
// returns: Chris  
//          David

虽然不是最优雅的,但它确实有效。从数组而不是对象开始会更容易。看起来对象不是必需的,因为键和值是相同的。尽管如此,这对于数组来说是一项非常简单的任务。我将 obj 转换为仅包含值的数组。然后新建一个数组 过滤掉我们想要的名称,返回按字母顺序和字符串格式排序的数组。 return 语句中的 ('\n') 只是用新行分隔数组的元素,因为这是您显示的格式。但如果您不需要将名称放在不同的行上,那可以更改为任何内容。

只是为了澄清,根据 documentation , const 可以在这里使用:

The const declaration creates a read-only reference to a value. It does not mean the value it holds is immutable, just that the variable identifier cannot be reassigned.

关于javascript - 选择某些值并在 ES6 中按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52763646/

相关文章:

javascript - 如何将字符串内的链接转换为常规链接?

javascript - 如何以正确的顺序链接映射和过滤函数

javascript - 如何通过浏览器下载本地网络文件

node.js - ES6 类中对 `this` 的嵌套引用

javascript - Javascript ES6 类中的 'this.name' 可以只是 'name' 吗?

javascript - Es6 React 箭头函数行为

javascript - 如何使用键盘输入暂停 html5 canvas javascript 动画

javascript - AJAX 通过回调返回 JSON 过滤响应

javascript - react-native-background-timer 在 Android 上不一致地用于录制音频

javascript - ReactJS - 未捕获错误 : Syntax error, 无法识别的表达式