无法读取未定义的属性“排序”

问题描述

我试图引用一个对象(它在数组内),但出现错误

无法读取未定义的属性“排序”

这是我的代码

const items = [
    { id: 1,value:5,weight: 14 },{ id: 2,value:8,weight: 3  },{ id: 3,value: 10,weight: 8},{ id: 4,value: 2,weight: 4},];

maxWeight = 15;

function sort(){
    let sort = 0;
    items.value.sort((a,b) => b - a);
    for(let i = 0; i < items.length; i++){
        console.log(items[i].value)
        sort += items[i].value;
        if(sort <= maxWeight){
            break;
        }
    }
    console.log(sort);
}

sort();

我做错了什么?我是否错误地引用了对象?

解决方法

items 是一个数组,它没有 value 属性。相反,它里面的每个元素都有这样一个属性,你可以根据它对数组进行排序:

items.sort((a,b) => b.value - a.value);
,

如果您想按 items.sort((a,b) => b.value - a.value); 键排序,请勾选 value

const items = [
    { id: 1,value:5,weight: 14 },{ id: 2,value:8,weight: 3  },{ id: 3,value: 10,weight: 8},{ id: 4,value: 2,weight: 4},];

maxWeight = 15;

function sort(){
    let sort = 0;
    items.sort((a,b) => b.value - a.value);
    //console.log(items);
    for(let i = 0; i < items.length; i++){
        console.log(items[i].value)
        sort += items[i].value;
        if(sort <= maxWeight){
            break;
        }
    }
    console.log(sort);
}

sort();

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...