【发布时间】:2016-07-22 17:31:21
【问题描述】:
var items = [{
//other properties... above
item_name: [
[1],
[2, 3]
],
item_description: [
[1],
[3, 4]
],
item_quantity: [
[1],
[4, 5]
],
item_value: null,
}, {
//other properties... above
item_name: 1,
item_description: 2,
item_quantity: 3,
item_value: 4,
}, {
//other properties... above
item_name: [1, 2, 3],
item_description: [1, 2, 3],
item_quantity: [1, 2, 3],
item_value: [1, 2, 3],
}];
var itemList = [];
items.forEach(function(item) {
if (!_.isArray(item.item_name)) {
itemList.push({
name: item.item_name,
description: item.item_description,
quantity: item.item_quantity,
value: item.item_value
});
}
var names = item.item_name ? _.flatten(item.item_name) : [];
var descriptions = item.item_description ? _.flatten(item.item_description) : [];
var quantity = item.item_quantity ? _.flatten(item.item_quantity) : [];
var values = item.item_value ? _.flatten(item.item_value) : [];
names.forEach(function(name, index) {
itemList.push({
name: names[index],
description: descriptions[index],
quantity: quantity[index],
values: values[index]
});
})
});
console.log(itemList);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.1/underscore-min.js"></script>
有没有一种方法可以让我在下划线中更快地执行此操作,以删除所有扁平化?
对于我正在使用的数组中的每个项目
item_name[i]
item_description[i]
item_quantity[i]
item_value[i]
并将它们添加到 itemList
item中的item属性可以是[[],[]]或者[]或者整数或者null
目前它正在输出预期的内容(除非名称为空并且它可以跳过项目)但是我不喜欢它正在执行的所有循环并且我想知道我是否可以更好地利用下划线库
【问题讨论】:
标签: javascript arrays object underscore.js