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.displayOrder log(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]
将是正确的…这是有效的!我去掉了一些逻辑,忘了取下钥匙。