我有一个名为$ scope.instruments的嵌套数组,其内容为:
折叠:
展开:
我也有一个对象:
此对象包含2个数组:AttributeID和SPAttributeRefID。
目前我正在使用reduce函数展平$ scope.instruments数组:
$scope.instruments = $scope.instruments.reduce(function (result, instrument) {
result[instrument.ID] = instrument;
return result
}, {});
然后我访问对象的AttributeID并将其分配给这样的变量:
$scope.recordInstrument = $scope.instruments[data.AttributeID[0]].ID;
我宁愿使用不同的方法来获得相同的结果。我读到一个数组可以使用for循环展平,这是一种更有效的方法。不幸的是,到目前为止我所尝试的并没有给我相同的结果。
var arrInstruments = $scope.instruments;
var arrLength = arrInstruments.length;
for (var i = 0; i < arrLength; i++) {
console.log(arrInstruments[i]);
}
有人可以帮我转换使用reduce函数的代码来使用循环并在AttributeID的赋值中得到相同的结果吗?
非常感谢。
答案 0 :(得分:3)
此代码应该可以满足您的需求:
var arrInstruments = $scope.instruments;
var arrLength = arrInstruments.length;
var result = {}
for (var i = 0; i < arrLength; i++) {
result[arrInstruments[i].ID] = arrInstruments[i];
}
// the result variable contains what you want.
但是我真的不明白为什么你会这么想。
不多维数组。它只是你的控制台向你显示一个非常大的阵列的方式(所以它不需要&#34;绘制&#34;所有东西)。