Javascript 添加修改器以复制Lodash.js中的元素?

Javascript 添加修改器以复制Lodash.js中的元素?,javascript,jquery,underscore.js,lodash,Javascript,Jquery,Underscore.js,Lodash,输入将是一个包含重复元素的列表,如下所示: ['30','10','10','20','20','30'] 输出将是一个包含如下修改元素的列表: ['30#1'、'10#1'、'10#2'、'20#1'、'20#2'、'30#2'] #修饰符指示此元素出现在列表中的时间 有人对此有想法吗?示例: var count = {}; ['30','10','10','20','20','30'].map(function(current) { count[current] ? count[cu

输入将是一个包含重复元素的列表,如下所示:

['30','10','10','20','20','30']

输出将是一个包含如下修改元素的列表:

['30#1'、'10#1'、'10#2'、'20#1'、'20#2'、'30#2']

#
修饰符指示此元素出现在列表中的时间

有人对此有想法吗?

示例:

var count = {};
['30','10','10','20','20','30'].map(function(current) {
    count[current] ? count[current] +=1 : count[current] = 1;
    return current + '#' + count[current];
})
例如:

var count = {};
['30','10','10','20','20','30'].map(function(current) {
    count[current] ? count[current] +=1 : count[current] = 1;
    return current + '#' + count[current];
})
例如:

var count = {};
['30','10','10','20','20','30'].map(function(current) {
    count[current] ? count[current] +=1 : count[current] = 1;
    return current + '#' + count[current];
})
例如:

var count = {};
['30','10','10','20','20','30'].map(function(current) {
    count[current] ? count[current] +=1 : count[current] = 1;
    return current + '#' + count[current];
})

因此,您希望结果是一个数组,其中一个项对应于原始数组中的每个项。这是
Array.prototype.map
的工作。您希望记录每个项目出现的次数,这可以通过一个简单的对象来实现。在每次迭代中,您都会查找项目出现的次数并添加一次。将该数字存储为新计数,并使用它构建返回值。就像这样,或多或少:

var arr = ['30', '10', '10', '20', '20', '30'];
var counts = {};

var arr2 = arr.map(function(item) {
  counts[item] = (counts[item] || 0) + 1;
  return item + "#" + counts[item];
});

您根本不需要Lodash。因此,您希望结果是一个数组,其中的项对应于原始数组中的每个项。这是
Array.prototype.map
的工作。您希望记录每个项目出现的次数,这可以通过一个简单的对象来实现。在每次迭代中,您都会查找项目出现的次数并添加一次。将该数字存储为新计数,并使用它构建返回值。就像这样,或多或少:

var arr = ['30', '10', '10', '20', '20', '30'];
var counts = {};

var arr2 = arr.map(function(item) {
  counts[item] = (counts[item] || 0) + 1;
  return item + "#" + counts[item];
});

您根本不需要Lodash。因此,您希望结果是一个数组,其中的项对应于原始数组中的每个项。这是
Array.prototype.map
的工作。您希望记录每个项目出现的次数,这可以通过一个简单的对象来实现。在每次迭代中,您都会查找项目出现的次数并添加一次。将该数字存储为新计数,并使用它构建返回值。就像这样,或多或少:

var arr = ['30', '10', '10', '20', '20', '30'];
var counts = {};

var arr2 = arr.map(function(item) {
  counts[item] = (counts[item] || 0) + 1;
  return item + "#" + counts[item];
});

您根本不需要Lodash。因此,您希望结果是一个数组,其中的项对应于原始数组中的每个项。这是
Array.prototype.map
的工作。您希望记录每个项目出现的次数,这可以通过一个简单的对象来实现。在每次迭代中,您都会查找项目出现的次数并添加一次。将该数字存储为新计数,并使用它构建返回值。就像这样,或多或少:

var arr = ['30', '10', '10', '20', '20', '30'];
var counts = {};

var arr2 = arr.map(function(item) {
  counts[item] = (counts[item] || 0) + 1;
  return item + "#" + counts[item];
});

这根本不需要Lodash。

下面是一个使用Lodash的示例

_.map(coll, function(item) {
    return item + '#' +
        _.set(this, item, _.get(this, item, 0) + 1)[item];
}, {});
好的是,您不需要在这里设置临时变量来计算结果。想法是将它们存储在
这个
——传递给的空对象中


如果属性不存在,该函数将为您提供默认值0。因此可以直接与一起使用,它设置属性值并返回对象。

下面是使用lodash的示例

_.map(coll, function(item) {
    return item + '#' +
        _.set(this, item, _.get(this, item, 0) + 1)[item];
}, {});
好的是,您不需要在这里设置临时变量来计算结果。想法是将它们存储在
这个
——传递给的空对象中


如果属性不存在,该函数将为您提供默认值0。因此可以直接与一起使用,它设置属性值并返回对象。

下面是使用lodash的示例

_.map(coll, function(item) {
    return item + '#' +
        _.set(this, item, _.get(this, item, 0) + 1)[item];
}, {});
好的是,您不需要在这里设置临时变量来计算结果。想法是将它们存储在
这个
——传递给的空对象中


如果属性不存在,该函数将为您提供默认值0。因此可以直接与一起使用,它设置属性值并返回对象。

下面是使用lodash的示例

_.map(coll, function(item) {
    return item + '#' +
        _.set(this, item, _.get(this, item, 0) + 1)[item];
}, {});
好的是,您不需要在这里设置临时变量来计算结果。想法是将它们存储在
这个
——传递给的空对象中

如果属性不存在,该函数将为您提供默认值0。因此可以直接与一起使用,它设置属性值并返回对象