我有这个字符串数组,我需要在“-”处拆分这些字符串,并用拆分的值创建一个新对象。字符串可以有多个“-”,但我希望总是在最后一个“-”拆分。
数组如下所示:
[
'This is movie number 1. – Robert Downey Jr',
'This is movie number 2. – Ben Afleck',
'This is movie number 3. – Chris Evans',
'This is movie number 4. – Robin Williams',
'This - is movie - number 5. – Al Pacino',
'This is movie number 6. – Dwayne Johnson',
'This is - movie number 7. – Paul Rudd'
]
我希望达到的目标是:
[
{
movie: "This is movie number 1.",
actor: "Robert Downey Jr"
},
{
movie: "This is movie number 2.",
actor: "Ben Afleck"
},
{
movie: "This is movie number 3.",
actor: "Chris Evans"
},
{
movie: "This is movie number 4.",
actor: "Robin Williams"
},
{
movie: "This - is movie - number 5.",
actor: "Al Pacino"
},
{
movie: "This is movie number 6.",
actor: "Dwayne Johnson"
},
{
movie: "This is - movie number 7.",
actor: "Paul Rudd"
}
]
到目前为止,我尝试了以下方法:
null
const arr = [
'This is movie number 1. – Robert Downey Jr',
'This is movie number 2. – Ben Afleck',
'This is movie number 3. – Chris Evans',
'This is movie number 4. – Robin Williams',
'This - is movie - number 5. – Al Pacino',
'This is movie number 6. – Dwayne Johnson',
'This is - movie number 7. – Paul Rudd'
];
const newArr = arr.map((el) => {
const movie = el.split('-').shift();
const actor = el.split('-').pop();
return {
movie: movie,
actor: actor
}
});
console.log(newArr)
null
我可以制作对象,但是movie和actor都使用完整的字符串,而不是拆分的版本。
如果有人能帮我做这件事,将不胜感激。
您的代码无法工作,因为示例数据中的字符串和您的代码使用了不同类型的-
:-vs-
null
const arr = [
'This is movie number 1. – Robert Downey Jr',
'This is movie number 2. – Ben Afleck',
'This is movie number 3. – Chris Evans',
'This is movie number 4. – Robin Williams',
'This - is movie - number 5. – Al Pacino',
'This is movie number 6. – Dwayne Johnson',
'This is - movie number 7. – Paul Rudd'
];
const newArr = arr.map((el) => {
const movie = el.split('–').shift();
const actor = el.split('–').pop();
return {
movie: movie,
actor: actor
}
});
console.log(newArr)
您可以使用lastindexof和substring来获得您想要的内容。只有当执行元名称中也有“-”时才会出现问题。但休息是有好处的
null
const arr = [
'This is movie number 1. – Robert Downey Jr',
'This is movie number 2. – Ben Afleck',
'This is movie number 3. – Chris Evans',
'This is movie number 4. – Robin Williams',
'This - is movie - number 5. – Al Pacino',
'This is movie number 6. – Dwayne Johnson',
'This is - movie number 7. – Paul Rudd'
];
const newArr = arr.map((el) => {
const idx = el.lastIndexOf("–");
const movie = el.substring(0, idx);
const actor = el.substring(idx+1);
return {
movie: movie,
actor: actor
}
});
console.log(newArr)
问题内容: 说我在这里有一个字符串: 我想在空白处分割字符串并将值分配给它们各自的变量 此外,有时用户可能没有姓氏。 问题答案: Swift的方法是使用全局函数,如下所示: 与 Swift 2 在Swift 2中,由于引入了内部CharacterView类型,对split的使用变得更加复杂。这意味着String不再采用SequenceType或CollectionType协议,而必须使用该属性来访
问题内容: 我正在尝试找到一种将String拆分为String数组的方法,并且每当遇到白色香料时就需要对其进行拆分,例如 “嗨,我是保罗” 进入” “嗨”“我”“保罗” 如何使用RegularExpression在split()方法中表示空格? 问题答案: 您需要一个正则表达式,例如,这意味着: 每当遇到至少一个空格时就进行拆分 。完整的Java代码是:
Java官方文档说明: 例如,字符串使用以下表达式Regex Result生成以下结果: 这就是我需要它工作的方式。然而,如果我运行这个: 它打印: 这与我的预期相去甚远: 为什么会这样?
问题内容: 我需要将一个String拆分为单个字符String的数组。 例如,拆分“ cat”将得到数组“ c”,“ a”,“ t” 问题答案: 这将产生
我有一个随机地址字符串,如 我想将其拆分为具有两个条件的字符串数组: 该字符串数组的每个元素的长度小于或等于20 字符串数组的元素没有尴尬的结尾 例如,每20个字符拆分将产生: 但正确的输出是: 注意字符串数组中的每个元素是如何小于或等于20的。 以上是我对这段代码的输出:
我有类似这样的ab阵列: 和下面这样的字符串: 正如您在该字符串中看到,我有字符存在于运算符数组中,现在我要根据数组中存在的运算符字符拆分字符串。我知道我可以用regex做这件事,但我不知道怎么做