修改后的原始数组值
Original Array value after modification
var a = ["11", "22", "46", "22", "11", "55"];
console.log(a); // [ '11', '22', '46', '22', '11', '55' ]
// Calculates my values
var b = a.map(function(num) {
return num.split('')
.map(Number)
.reduce(function(a, b) {
return a + b;
});
});
console.log(b); // [ 2, 4, 10, 4, 2, 10 ]
// Finds my biggest value
var c = 0;
for (var i = 0; i < b.length; i++) {
if (b[i] > c) {
c = b[i];
}
}
console.log(c); // 10
// Sorts my array
var d = b;
d.sort(function(a, b) {
return a - b;
});
console.log(d); // [ 2, 2, 4, 4, 10, 10 ]
我在这里遇到了问题。var d
告诉我以下这些数组[ 2, 2, 4, 4, 10, 10 ]
。它们最初来自这个阵列["11","22","46","22","11","55"]
。我也在整理它们。因此,在var d
结束时,我在数组末尾收到了两个 10。假设d[4]
最初来自a[2]
,d[5]
来自a[5]
.如何让代码从我的第一个数组中告诉我 10 的原始值。假设我们得到2, 2, 4, 4, 10, 10
.我希望右侧值的最后 10 个告诉我它来自"55"
.我有办法做到这一点吗?
在a.map
上,使其返回一个对象,其中包含包含原始值的属性和要修改的属性。在以下情况下,original
将是要保持不变的值,而value
是您将要处理的值。进一步的操作应与value
一起使用并保留original
。
a.map(function(num) {
return {
original: num,
value: //stuff
};
});
虽然梦想家约瑟夫的另一个解决方案指向正确的方向,但缺乏问题的具体想要结果。
此提案使用带有对象的数组,并保留以前的排序顺序,其中包含pos
和想要的cobined数字。
排序后,您可以访问最后一个元素并从新数组中获取原始值。
var a = ["11", "22", "46", "22", "11", "55"],
b = a.map(function (aa, i) {
return {
value: aa,
pos: i,
number: aa.split('').map(Number).reduce(function (a, b) { return a + b }, 0),
};
});
b.sort(function (a, b) {
return a.number - b.number;
});
document.write(b[b.length - 1].value);
document.write('<pre>' + JSON.stringify(b, 0, 4) + '</pre>');
function myfun(a) {
var b = a.map(function (aa, i) {
return {
value: aa,
pos: i,
number: aa.replace(/-/g, '').split('').map(Number).reduce(function (a, b) { return a + b }, 0),
};
});
b.sort(function (a, b) {
return a.number - b.number;
});
return b;
}
document.write('<pre>' + JSON.stringify(myfun(['1-2-3-4', '5-67-7-8', '2-3545-4-6-8-1', '3-3-4-1-3-4', "3-2-4-5-7", '2-3-4-5-7']), 0, 4) + '</pre>');
相关文章:
- 修改后的原始数组值
- 遍历JS对象/数组,如果找到匹配项,则更改值并返回原始对象/数组结构
- 为什么数组上的 js 映射会修改原始数组
- 从作为参数传入的数组中删除对象不会修改原始数组 (Angular)
- Javascript 数组 // 从指定索引开始对数组重新排序,同时保持原始顺序
- 如何避免在使用$filter后更新原始数组
- 在 JavaScript 函数之后保留原始数组
- Js 从数组中删除元素而不更改原始元素
- 对数组进行排序并返回一个指示符数组,该数组指示已排序的元素相对于原始元素(new)的位置
- 用于复制可能影响原始数组的数组的函数
- 通过 Array.prototype.slice() 更改克隆的数组会影响原始数组
- 比较两个数组并返回一个新数组,其中包含仅在其中一个原始数组中找到的任何项目
- 需要更新数组中的值,但保留原始值才能再次更新
- 减少a'原始'javascript数组转换为更紧凑的(对象)数组
- 保持原始数组不变,更改函数中的本地副本
- 将数组转换为保存原始索引字段的对象
- 试图将一个原始对象推送到数组中,然后再查找其索引
- 更改数组的值将更改原始数组JavaScript
- 如何将数组元素拆分为2,并返回一个已拆分原始元素的新数组
- 如果javascript中存在重复,则从数组中删除所有重复和原始元素