如何从具有订单号的值创建有序数组
How to create an ordered array from values that have an order number?
所以我有一系列字符串,其中包含图像路径和顺序#连接。
它们是这样的:
const images = [
'photo1.jpg,0'
'photo2.jpg,2'
'photo3.jpg,1'
]
所以正确的顺序应该是:photo1, photo3, photo2
我需要做的是将它处理成一个只有路径值的正确排序的数组。所以最终我需要:
const orderedImages = [
'photo1.jpg'
'photo3.jpg'
'photo2.jpg'
]
最好的方法是什么?
您可以使用array.sort
对它们进行排序,使用array.map
删除顺序值。
const images = [
'photo1.jpg,0',
'photo2.jpg,2',
'photo3.jpg,1'
]
var output = images.sort(function(a,b){
return +a.split(',')[1] - +b.split(',')[1]
}).map(function(item){
return item.split(',')[0]
});
console.log(output)
您可以拆分这些值并分配给给定的索引。
var images = ['photo1.jpg,0', 'photo2.jpg,2', 'photo3.jpg,1'],
array = [];
images.forEach(function (a) {
var aa = a.split(',');
array[aa[1]] = aa[0];
});
console.log(array);
使用Lodash,只需写:
var orderedImages = _(images)
.sortBy(function(element) { return element.split[','][1] ; })
.map(function(element) { return element.split[','][0]; })
.value();
试试这个方法
var images = [
'photo1.jpg,0',
'photo2.jpg,2',
'photo3.jpg,1'
];
images.sort(function(a,b){
return Number(a.split(",")[1]) - Number(b.split(",")[1])
});
var orderedImages = images.map(function(item){
return item.split(",")[0];
});
console.log(orderedImages);
首先使用 Array#sort
对元素进行排序,然后使用 Array#map
方法对元素进行更新。
var images = [
'photo1.jpg,0',
'photo2.jpg,2',
'photo3.jpg,1'
]
// sort the element
.sort(function(a, b) {
// split the element and calculate
// return value based on that
return a.split(',')[1] - b.split(',')[1];
// iterate and generate new array with updated value
}).map(function(v) {
// generate array elemnt by removing the number part
return v.split(',')[0]
})
console.log(images)
带有ES6箭头功能
var images = [
'photo1.jpg,0',
'photo2.jpg,2',
'photo3.jpg,1'
].sort((a, b) => a.split(',')[1] - b.split(',')[1]).map(v => v.split(',')[0])
console.log(images)
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 为effect Composer创建GodRays效果过程
- 从javascript创建一个列表
- onkeyup无法动态创建多个文本区域
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何访问声音管理器2创建的声音对象
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 使用Facebook live API创建实时视频对象时的隐私设置
- 在动态创建的元素上获取对特定选择器的引用
- 如何创建带有插槽的vue js组件预加载程序
- 如何在创建键时引用来自同一对象的键
- 如何创建JSON数组
- 从html创建一个指令,该指令按类名应用函数
- 使用Javascript创建测验页面
- 更改使用Chart.js创建的图表中的轴线颜色
- JavaScript名称空间和对象创建
- JQuery对动态创建的对象进行选择
- 如何从具有订单号的值创建有序数组
- 无法根据 S3 存储桶的创建日期创建排序数组