如何使用下划线.js编辑具有字符串键值对的对象数组中的字符串
How do you use underscore.js to edit a string in an array of objects that have a string key value pair?
如果可能的话,我更喜欢下划线解决方案,但如果这是我能得到的最好的解决方案,我会采用香草 JS 解决方案。
我想使用数组 2 来编辑 array1 对象中的字符串,这些字符串以 array2 中的字符串开头或结尾。 我正在寻找的结果可以在下面的 array3 结果中看到:
array1 = [{key1: "Patty Bakery", key2: stuff}, {key1: "Bob Wine Shack",
key2: mattersNot}, {key1: "Romeo Clothing", key2: things}, {key1:
"StackIt", key2: finished}];
array2 = ["Patty", "Romeo", "Wine Shack"];
array3 = [{key1: "Bakery", key2: stuff}, {key1: "Bob",
key2: mattersNot}, {key1: "Clothing", key2: things}, {key1:
"StackIt", key2: finished}];
到目前为止,我能做的最好的事情就是用这段代码删除 array1 中的整个对象:
array1.filter(function(a){
return!_.some(array2, function(b){
return startsWith(a.key1, b)})})
//I have installed and am using underscore.string
这给了我一个看起来像
array3 = [{key1:"StackIt", key2: finished}];
您可以使用
Regex
作为以开头或结尾的模式。
以下是描述相同内容的片段
var array1 = [{
key1: "Patty Bakery",
key2: "stuff"
}, {
key1: "Bob Wine Shack",
key2: "mattersNot"
}, {
key1: "Romeo Clothing",
key2: "things"
}, {
key1: "StackIt",
key2: "finished"
}];
var array2 = ["Patty", "Romeo", "Wine Shack"];
var array3 = [];
array2.forEach(function(item) {
var startWithReg = new RegExp("^" + item);
var endsWithReg = new RegExp(item + "$");
console.log(startWithReg)
array3 = array1.map(function(row) {
row.key1 = row.key1.replace(startWithReg, '').trim();
row.key1 = row.key1.replace(endsWithReg, '').trim();
return row;
});
})
console.log(array3)
相关文章:
- 从html标记格式的字符串中提取键值对
- 从字符串javascript中获取键值对
- 将字符串数组转换为键值对对象
- 如何在 javascript 中将管道分隔的字符串解析为键值对
- 来自字符串的 JavaScript 访问键值对
- 如何使用下划线.js编辑具有字符串键值对的对象数组中的字符串
- 如何将 html 放在键值对的字符串中,以便提交到 meteor 中的集合中
- 在对象中指定键时使用字符串's键值对
- JavaScript关联数组-将字符串作为数组键:值对进行传递
- 如何将字符串循环为键值对
- 如何将字符串转换为对象作为键值对
- 在javascript中将字符串拆分为键:值对
- 如何将大字符串对象转换为键/值对块
- 在Javascript和会话存储中对键值对进行字符串化
- 可以在section中使用字符串数组而不是键/值对
- 从字符串解析键/值对
- 我如何分割两个字符串,并使一个键值对在javascript
- 如何将字符串数组转换为对象,以便将这些对象拆分为键值对
- 在Javascript中将键值对操作为字符串
- 如何在字符串中访问Javascript中解析的JSON中的嵌套键值对