我有一个JSON字符串。
"1":{"name":"AK-47 | Aquamarine Revenge (Battle-Scarred)","price":"13.55","sold":"444"},"2":{"name":"AK-47 | Aquamarine Revenge (Factory New)","price":"38.96","sold":"157"}
等等...
如何删除数字(1,2,3等...),并使用“name”值来标识每个项目intead?我看过lodash.keyBy,但我无法将“name”作为标识符。最终目标是能够打电话obj[itemName]
-并收到价格。
Lodash有一个不同的方法_.mapKeys
适合这一点好一点:
const obj = {
"1": {
"name":"AK-47 | Aquamarine Revenge (Battle-Scarred)",
"price":"13.55",
"sold":"444"
},
"2":{
"name":"AK-47 | Aquamarine Revenge (Factory New)",
"price":"38.96",
"sold":"157"
}
}
console.log(_.mapKeys(obj, (val) => val.name));
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.4/lodash.min.js"></script>
为什么必须用qazxsw poi完成?与qazxsw poi和qazxsw poi怎么样? (qazxsw poi假设您不再需要_.keyBy
键/值对)
_.each
见:_.omit
像这样?
_.omit
如果需要,还可以从结果键中删除“名称”,还可以创建原始副本而不是引用。
name
这通过给出特定名称为您提供整个项目。
var before = {"1":{"name":"AK-47 | Aquamarine Revenge (Battle-Scarred)","price":"13.55","sold":"444"},"2":{"name":"AK-47 | Aquamarine Revenge (Factory New)","price":"38.96","sold":"157"}};
var after = {};
_.each(before, function(b4) {
after[b4.name] = _.omit(b4, 'name');
});
如果你想要价格,你只需:
https://repl.it/@dexygen/stackoverflowq48085676