Javascript 如何完善这个JS数组搜索功能?

Javascript 如何完善这个JS数组搜索功能?,javascript,arrays,ecmascript-6,lodash,Javascript,Arrays,Ecmascript 6,Lodash,我有以下功能: export const functionName = (key) => { const data = [ { displayOrder: 0, key: 'key-name-1', }, { displayOrder: 2, key: 'key-name-2', }, ]; for (let index in data) { return data[index].disp

我有以下功能:

export const functionName = (key) => {
  const data = [
    {
      displayOrder: 0,
      key: 'key-name-1',
    },
    {
      displayOrder: 2,
      key: 'key-name-2',
    },
  ];

  for (let index in data) {
    return data[index].displayOrder === 0
      ? data[index].key
      : data[0].key;
  }
};
该功能的目的是返回显示顺序最低的
。这是可行的,但有没有更好更灵活的方法来实现这一点


其次,我怎样才能创建一个类似的版本来根据
显示顺序重新排列整个数组呢?

当您想从数组中提取一个元素时(并且您无法使用
.find
识别元素本身),正确的方法是使用
.reduce

const functionName=()=>{
常数数据=[
{
显示顺序:0,
key:'key-name-1',
},
{
显示顺序:2,
key:'key-name-2',
},
];
const lowestDisplayObj=数据。reduce((lowestObjSoFar,currentObj)=>{
如果(currentObj.displayOrderlog(functionName())您可以使用array reduce并执行如下操作

const数据=[{
显示顺序:10,
key:'key-name-10',
},
{
显示顺序:2,
key:'key-name-2',
},
{
显示顺序:1,
key:'key-name-1 lower',
}
];
设a=数据。减少((上一个,项目)=>{
如果(!prev){
退货项目;
}
返回(item.displayOrder
const数据=[
{
显示顺序:0,
key:'key-name-1',
},
{
显示顺序:2,
key:'key-name-2',
},
];
const min=Math.min.apply(null,data.map(({displayOrder})=>+displayOrder));
const obj=data.find((obj)=>obj.displayOrder==min);

控制台日志(对象键)看起来不对。如果数组中有更多的项,而数组尚未排序,则该操作是否有效?您将
0
硬编码为最低的
displayOrder
是否始终如此?或者它可能是1(或任何数字)是最低的?
data.sort((a,b)=>a.displayOrder-b.displayOrder)[0]
将是正确的…这是有效的!我去掉了一些逻辑,忘了取下钥匙。