Introducing new technologies has facilitated people's lives more than ever. As one of these emerging technologies, the Internet of Things (IoT) enables objects we handle daily to interact with each other or humans and exchange information through the Internet by being equipped with sensors and communication technologies. IoT turns the physical world into a virtual world where heterogeneous objects and devices can be interconnected and controlled. IoT-based networks face numerous challenges, including energy and sensor transmission limitations. New technologies are needed to spread the IoT platform, optimize costs, cover heterogeneous connections, reduce power consumption, and diminish delays. Users of IoTbased systems typically use services that are integrated into these networks. Service providers provide users with on-demand services. The interrelationship between this request and response must be managed in a way that is done using a resource allocation strategy. Therefore, resource allocation plays a major role in these systems and networks. The allocation of resources involves matters such as how much, where, and when available resources should be provided to the user economically. The allocation of resources in the IoT environment is also subject to various challenges, including maintaining the quality of service, achieving a predetermined level of service, storing power, controlling congestion, and reducing costs. As the IoT resource allocation problem is an NP-Hard one, many research efforts have been conducted on this topic, and various algorithms have been developed. This paper reviews published publications on IoT resource allocation, outlining the underlying principles, the latest developments, and current trends.