javascript - 数据作为对象和数组传递?
问题描述
我正在为集团公司的管理董事开发一个系统。我需要filter
为指定的公司担任董事。在我将数据传递controller
给视图后,在选择公司时,过滤器显示不正确的结果。
上面的结果会显示当我console.log(this.directorships)
那些。我认为这是因为对于单个数据,它将显示为array
. 但如果这些倍数将显示为objects
.
我正在循环那些内部for
循环,如下所示打印结果。
for (let i = 0; i < this.directorships.length; i++) {
single_director = this.directorships[i].director_profile;
finalArray.push(single_director);
}
MyController.php
public function activeBoard($company_id){
$directorship = Directorship::with(['director_profile'])
->where('master_data_id',$company_id)
->get();
$active_directors = $directorship->where('active',1);
return $active_directors;
}
谁能告诉我我在这里犯了什么错误?或者有什么方法可以做我所期望的吗?
解决方案
从截图中很难看出,但Objects
在 JavaScript 中不能使用标准for
循环进行迭代,并且默认情况下没有长度属性。您应该首先检查 是否directorships
是一个数组,然后适当地迭代或读取。例如:
let directorships_is_array = Array.isArray(directorships);
if(directorships_is_array) {
// ... loop through array
}
else {
// ... perform other function on object
}
有很多方法可以遍历一个对象,并获得一个对象的长度。新的for in
循环可以遍历一个对象。例如:
for(let director in directorships) {
console.log(director);
}
您还可以Object
使用类似的方法获取长度,let directors_length = Object.keys(directorships).length
然后执行以下操作:
let number_of_directorships = Object.keys(directorships).length;
for(let i=0; i<number_of_directorships; i++) {
// ... iterate here
}
推荐阅读
- winforms - Windows窗体设计模式通用解决方案
- sql - 选择子句中的子查询中的 Listagg 返回 null
- c# - 如何将表对象输出参数从 C# ASP.NET Core 传递到 Oracle 存储过程
- reactjs - 无法从特定事物中检索值
- c# - 如果我使用 dropdownlist.selectedindex,如何在表中存储实际项目名称?我正在使用 tinyint 表示性别
- java - 如何修改mysql更新方法?
- react-native - 如何从 React Native Linking 打开 Facebook 应用程序(到特定页面)?
- python - 我想实现图像处理,但它显示了一些错误
- node.js - AWS Lambda 函数无法通过 wscat 触发
- docker - 如何在较新版本中使用自定义配置启动 MinIO Server?