假设我有一个如下数组:
let inputArr = [
"Name: Jarina Begum↵Age: 70 years↵↵",
"Tab. Mycofree (250 mg)↵১ + 0 + ১/২ টা -- ১.৫ মাস -- খাওয়ার পরে↵",
"Cap. Losectil (20 mg)↵১ + 0 + ১ টা -- .১.৫ মাস -- খাওয়ার আগে↵",
"Tab. Rupin (10 mg)↵0 + 0 + ১ টা -- .১.৫ মাস -- খাওয়ার পরে↵",
"Savoy Sulphur Soap↵.১.৫ মাস -- নিয়মিত ব্যবহার করবেন।↵",
"Advices:",
"১।নিয়মিত ওষুধ সেবন করবেন।, ",
"২।সাধারন সাবান লাগাবেন না।, ",
"৩।পরিধেয় জামা কাপড় Savlon/Detol দিয়ে ধুয়ে ফেলবেন, ",
"৪।পরিবারের সবার চিকিৎসা করতে হবে।, ",
"৫।কবিরাজী ও হোমিওপাথি করবেন না, ",
"৬।ডাক্তার এর পরামর্শ বাতিত ওষুধ বন্ধ করবেন না।"
];
我想从上面的数组中创建一个新数组,其中每个元素的字符大小应该是
因此,我必须一个接一个地连接元素,计算字符大小
循环将持续到inputArr
的最后一个索引。
我还确定了任何元素的大小是否为
预期输出如下:
[
"Name: Jarina Begum↵Age: 70 years↵↵Tab. Mycofree (250 mg)↵১ + 0 + ১/২ টা -- ১.৫ মাস -- খাওয়ার পরে↵Cap. Losectil (20 mg)↵১ + 0 + ১ টা -- .১.৫ মাস -- খাওয়ার আগে↵Tab. Rupin (10 mg)↵0 + 0 + ১ টা -- .১.৫ মাস -- খাওয়ার পরে↵Savoy Sulphur Soap↵.১.৫ মাস -- নিয়মিত ব্যবহার করবেন।↵Advices:",
"১।নিয়মিত ওষুধ সেবন করবেন।, ২।সাধারন সাবান লাগাবেন না।, ৩।পরিধেয় জামা কাপড় Savlon/Detol দিয়ে ধুয়ে ফেলবেন, ৪।পরিবারের সবার চিকিৎসা করতে হবে।, ৫।কবিরাজী ও হোমিওপাথি করবেন না, ৬।ডাক্তার এর পরামর্শ বাতিত ওষুধ বন্ধ করবেন না।"
];
所以,再一次,要求是短裤:
另一种方法是使用简单的for
循环。
let inputArr = [
"Name: Jarina Begum↵Age: 70 years ↵↵",
"Tab. Mycofree (250 mg)↵১ + 0 + ১/২ টা -- ১.৫ মাস -- খাওয়ার পরে↵",
"Cap. Losectil (20 mg)↵১ + 0 + ১ টা -- .১.৫ মাস -- খাওয়ার আগে↵",
"Tab. Rupin (10 mg)↵0 + 0 + ১ টা -- .১.৫ মাস -- খাওয়ার পরে↵",
"Savoy Sulphur Soap↵.১.৫ মাস -- নিয়েমিত ব্যবহার করবেন।↵",
"Advices:",
"১।নিয়মিত ওষুধ সেবন করবেন।, ",
"২।সাধারন সাবান লাগাবেন না।, ",
"৩।পরিধেয় জামা কাপড় Savlon/Detol দিয়ে ধুয়ে ফেলবেন, ",
"৪। পরিবারের সবার চিকিৎসা করতে হবে।, ",
"৫।কবিরাজী ও হমিওপাথি করবেন না, ",
"৬।ডাক্তার এর পরামর্শ বাতিত অষুধ বন্দ করবেন না।"
];
let expectedArr = [];
let driverString = '';
var count = 0;
var length_= 0;
for(var i = 0; i < inputArr.length; i++){
length_ = inputArr[i]+ driverString;
if(length_.length <= 300 ){
driverString = driverString + inputArr[i];
}else{
driverString = '';
driverString = driverString + inputArr[i];
count++;
length_= 0;
}
expectedArr[count] = driverString;
}
console.log(expectedArr,expectedArr.length)
好的,感谢所有花时间解决我问题的人,尽管他们没有满足我的要求。总之,最后,我用传统的循环解决了这个问题。
我已经编写了三个函数来解决这个问题,一个函数用于第一个需求,另外两个函数用于第二个需求。
函数一:我传递两个参数,一个用于数组,另一个用于字符长度限制。
在第一个函数中,我调用了第二个函数,在那里传递给定的数组,并将结果存储为输入数组。
const chunkSmsArr = (arr, len=300) => {
let inputArr = checkElLength(arr, len);
let outputArr = [],
msgString = '',
count = 0;
for(let i=0; i<inputArr.length; i++) {
if( (msgString+inputArr[i]).length <= len ) {
msgString += inputArr[i];
} else {
msgString = '';
msgString += inputArr[i];
count++;
}
outputArr[count] = msgString;
}
return outputArr;
}
函数二:这个函数检查给定数组的每个元素,如果找到任何元素的长度
const checkElLength = (inputArr, len) => {
let outputArr = [];
for(let i=0; i<inputArr.length; i++) {
if (inputArr[i].length > len) {
let breakedSmsArr = breakSmsArrString(inputArr[i], len);
inputArr.splice(i, 1, ...breakedSmsArr);
}
}
outputArr = inputArr;
return outputArr;
}
函数三:我还传递了两个参数,一个是我需要分解为数组元素的字符串,另一个是字符长度限制。
const breakSmsArrString = (str, len) => {
let curr = len, prev = 0;
let output = [];
while(str[curr]) {
if(str[curr++] == ' ') {
output.push(str.substring(prev,curr));
prev = curr;
curr += len;
} else {
let currReverse = curr;
do {
if(str.substring(currReverse - 1, currReverse) == ' ') {
output.push(str.substring(prev,currReverse));
prev = currReverse;
curr = currReverse + len;
break;
}
currReverse--;
} while(currReverse > prev)
}
}
output.push(str.substr(prev));
return output;
}
因此,现在您可以尝试使用控制台。记录以查看输出:
console.log(chunkArr(inputArr, 300));
您可以使用来以最佳方式执行此操作。
let charLimitArray = inputArr.join().match(/.{1,300}/g)
console.log(charLimitArray);
let inputArr = [
"Name: Jarina Begum↵Age: 70 years ↵↵",
"Tab. Mycofree (250 mg)↵১ + 0 + ১/২ টা -- ১.৫ মাস -- খাওয়ার পরে↵",
"Cap. Losectil (20 mg)↵১ + 0 + ১ টা -- .১.৫ মাস -- খাওয়ার আগে↵",
"Tab. Rupin (10 mg)↵0 + 0 + ১ টা -- .১.৫ মাস -- খাওয়ার পরে↵",
"Savoy Sulphur Soap↵.১.৫ মাস -- নিয়েমিত ব্যবহার করবেন।↵",
"Advices:",
"১।নিয়মিত ওষুধ সেবন করবেন।, ",
"২।সাধারন সাবান লাগাবেন না।, ",
"৩।পরিধেয় জামা কাপড় Savlon/Detol দিয়ে ধুয়ে ফেলবেন, ",
"৪। পরিবারের সবার চিকিৎসা করতে হবে।, ",
"৫।কবিরাজী ও হমিওপাথি করবেন না, ",
"৬।ডাক্তার এর পরামর্শ বাতিত অষুধ বন্দ করবেন না।"
];
console.log(inputArr.join().match(/.{1,300}/g))
我的问题涉及在文本中查找包含分号的句子,并查找分号前后的单词数。我知道如何用分号分割所有内容,但是我得到了两个字符串,但我似乎无法计算字符串中的单词? 文本看起来像: 到目前为止,我取得了以下成就: 我使用计数的原因是每次迭代后计数增加1,因此句子被标记。我已经去掉了句子末尾的段落,如果句子中包含分号,我也用分号将它们分开。 到目前为止,我只试着打印单词split,看看它能给我带来什么。
问题内容: 有没有办法在不知道字符串长度的情况下,将一个字符长的字符串切成4个字符串,每个字符长? 例如: 问题答案:
我想知道实际上是如何工作的。我认为这是一种计算数组长度的简单方法,并希望在使用它之前适当地理解它。我对指针算术不是很有经验,但根据我的理解,给出了数组第一个元素的地址。将按地址转到数组的末尾。但是不应该给出这个地址的值吗。而是打印出地址。我真的很感激你帮我把指针的东西弄清楚。 下面是我正在研究的一个简单示例:
问题内容: 我正在尝试找到一种将String拆分为String数组的方法,并且每当遇到白色香料时就需要对其进行拆分,例如 “嗨,我是保罗” 进入” “嗨”“我”“保罗” 如何使用RegularExpression在split()方法中表示空格? 问题答案: 您需要一个正则表达式,例如,这意味着: 每当遇到至少一个空格时就进行拆分 。完整的Java代码是:
本文向大家介绍JavaScript 将字符串拆分为数组,包括了JavaScript 将字符串拆分为数组的使用技巧和注意事项,需要的朋友参考一下 例子 用于.split从字符串到拆分子字符串的数组: 使用数组方法 .join返回字符串:
问题内容: 我需要将一个String拆分为单个字符String的数组。 例如,拆分“ cat”将得到数组“ c”,“ a”,“ t” 问题答案: 这将产生